基于Angular中ng-controller父子级嵌套的相关属性详解


Posted in Javascript onOctober 08, 2018

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

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

例:

<div ng-controller="father">
 <div >name1:{{ name1 }}</div>
 <div ng-controller="child">name2:{{ name2 }}</div>
</div>

情况1:

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

页面显示结果:

name1:x 
name2:y

情况2:

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

页面显示结果:

name1: 
name2:b:

情况3:

app.controller("father",function ($scope) {
 if($scope.name1){
  $scope.name1 += "!";
  console.log($scope.name1);
 } else {
  $scope.name1 = "@";
  console.log($scope.name1);
 }

 if($scope.name2){
  $scope.name2 += "#";
  console.log($scope.name2);
 } else {
  $scope.name2 = "$";
  console.log($scope.name2);
 }

 console.log("father");
});
app.controller("child",function ($scope) {
 if($scope.name1){
  $scope.name1 += "%";
  console.log($scope.name1);
 } else {
  $scope.name1 = "^";
  console.log($scope.name1);
 }

 if($scope.name2){
  $scope.name2 += "&";
  console.log($scope.name2);
 } else {
  $scope.name2 = "*";
  console.log($scope.name2);
 }

 console.log("child");
});

控制台打印结果:

@
$
father
@%
$&
child

页面显示结果:

name1:@
name2:$&

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

结论:

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

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

Javascript 相关文章推荐
javascript倒计时功能实现代码
Jun 07 Javascript
js数字转换为float,取N位小数
Feb 08 Javascript
JS 打印功能代码可实现打印预览、打印设置等
Oct 31 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
Mar 04 Javascript
jQuery事件绑定与解除绑定实现方法
Apr 15 Javascript
js实现a标签超链接提交form表单的方法
Jun 24 Javascript
bootstrap3 兼容IE8浏览器!
May 02 Javascript
JavaScript利用Date实现简单的倒计时实例
Jan 12 Javascript
js css自定义分页效果
Feb 24 Javascript
微信小程序slider组件使用详解
Jan 31 Javascript
基于React+Redux的SSR实现方法
Jul 03 Javascript
简单两步使用node发送qq邮件的方法
Mar 01 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
Oct 08 #Javascript
angularJs提交文本框数据到后台的方法
Oct 08 #Javascript
详解webpack之图片引入-增强的file-loader:url-loader
Oct 08 #Javascript
在angularJs中进行数据遍历的2种方法
Oct 08 #Javascript
webpack之引入图片的实现及问题
Oct 08 #Javascript
angularJs中json数据转换与本地存储的实例
Oct 08 #Javascript
JS中验证整数和小数的正则表达式
Oct 08 #Javascript
You might like
PHP微信开发之查询微信精选文章
2016/06/23 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
JavaScript基础语法让人疑惑的地方小结
2012/05/23 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
基于JS实现快速读取TXT文件
2020/08/25 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
Python中AND、OR的一个使用小技巧
2015/02/18 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
基于python log取对数详解
2018/06/08 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
Django缓存系统实现过程解析
2019/08/02 Python
Python基于WordCloud制作词云图
2019/11/29 Python
Python实现图像的垂直投影示例
2020/01/17 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
python wsgiref源码解析
2021/02/06 Python
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
审核会计岗位职责
2013/11/08 职场文书
教师年度考核自我鉴定
2014/01/19 职场文书
学校元旦晚会方案
2014/02/19 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
卫生标语大全
2014/06/21 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
毕业典礼邀请函
2015/01/31 职场文书
浅谈Redis主从复制以及主从复制原理
2021/05/29 Redis
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技
MySQL深分页问题解决思路
2022/12/24 MySQL