基于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小tip资料
Nov 23 Javascript
js获得鼠标的坐标值的方法
Mar 13 Javascript
js中的scroll和offset 使用比较的实例与分析
Sep 29 Javascript
javascript操作字符串的原生方法
Dec 22 Javascript
js获取当前日期前七天的方法
Feb 28 Javascript
js实现仿qq消息的弹出窗效果
Jan 06 Javascript
angular.js指令中的controller、compile与link函数的不同之处
May 10 Javascript
详解vue-resource promise兼容性问题
Jun 20 Javascript
通过命令行生成vue项目框架的方法
Jul 12 Javascript
vue引入js数字小键盘的实现代码
May 14 Javascript
微信小程序入门之广告条实现方法示例
Dec 05 Javascript
js里面的变量范围分享
Jul 18 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适配器模式介绍
2012/08/14 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
纯js实现动态时间显示
2020/09/07 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
vue如何将v-for中的表格导出来
2018/05/07 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
详解vue 命名视图
2019/08/14 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
0基础学习前端开发的一些建议
2020/07/14 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
浅谈python的dataframe与series的创建方法
2018/11/12 Python
Python for循环与getitem的关系详解
2020/01/02 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
Python实现随机爬山算法
2021/01/29 Python
explicit和implicit的含义
2012/11/15 面试题
医药工作者的求职信范文
2013/09/21 职场文书
教师档案管理制度
2014/01/23 职场文书
文明和谐家庭事迹材料
2014/05/18 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
教师培训简讯
2015/07/20 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python
浅谈克隆 JavaScript
2021/11/02 Javascript
试用1103暨1103、1101同门大比武 [ DAIWEI ]
2022/04/05 无线电