经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » AngularJS » 查看文章
基于Angular中ng-controller父子级嵌套的相关属性详解
来源:jb51  时间:2018/10/10 8:46:07  对本文有异议

ng-controller是为应用变量添加控制器

当有两个控制器father、child且child 在 father内,那child 可以称为子控制器,它将继承父控制器father的scope。child就可以访问到father的scope中的所有函数和变量。

例:

  1. <div ng-controller="father">
  2. <div >name1:{{ name1 }}</div>
  3. <div ng-controller="child">name2:{{ name2 }}</div>
  4. </div>

情况1:

  1. app.controller("father",function ($scope) {
  2. $scope.name1 = "x";
  3. $scope.name2 = "y";
  4. });

页面显示结果:

  1. name1:x
  2. name2:y

情况2:

  1. app.controller("child",function ($scope) {
  2. $scope.name1 = "a";
  3. $scope.name2 = "b";
  4. });

页面显示结果:

  1. name1:
  2. name2:b

情况3:

  1. app.controller("father",function ($scope) {
  2. if($scope.name1){
  3. $scope.name1 += "!";
  4. console.log($scope.name1);
  5. } else {
  6. $scope.name1 = "@";
  7. console.log($scope.name1);
  8. }
  9.  
  10. if($scope.name2){
  11. $scope.name2 += "#";
  12. console.log($scope.name2);
  13. } else {
  14. $scope.name2 = "$";
  15. console.log($scope.name2);
  16. }
  17.  
  18. console.log("father");
  19. });
  20. app.controller("child",function ($scope) {
  21. if($scope.name1){
  22. $scope.name1 += "%";
  23. console.log($scope.name1);
  24. } else {
  25. $scope.name1 = "^";
  26. console.log($scope.name1);
  27. }
  28.  
  29. if($scope.name2){
  30. $scope.name2 += "&";
  31. console.log($scope.name2);
  32. } else {
  33. $scope.name2 = "*";
  34. console.log($scope.name2);
  35. }
  36.  
  37. console.log("child");
  38. });

控制台打印结果:

  1. @
  2. $
  3. father
  4. @%
  5. $&
  6. child

页面显示结果:

  1. name1:@
  2. name2:$&

可以看出name1的页面显示结果与控制台打印结果不一致

结论:

父级控制器先执行而子级控制器后执行。父级和子级控制器都可对父级下scope作用域进行访问操作,但当子级控制器尝试处理父级作用域内、子级作用域外的数据则可能会导致父级中的数据变脏。

以上这篇基于Angular中ng-controller父子级嵌套的相关属性详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号