基于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-TreeView父子联动效果保持节点状态一致
Aug 12 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
Nov 20 Javascript
用JQuery实现表格隔行变色和突出显示当前行的代码
Feb 10 Javascript
js动态设置鼠标事件示例代码
Oct 30 Javascript
JavaScript输入邮箱自动提示实例代码
Jan 13 Javascript
jquery处理json对象
Nov 03 Javascript
javascript使用appendChild追加节点实例
Jan 12 Javascript
jQuery+Ajax实现无刷新操作
Jan 04 Javascript
最常见和最有用的字符串相关的方法详解
Feb 06 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
Mar 05 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
May 25 Javascript
详解Vue.js在页面加载时执行某个方法
Nov 20 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功能函数
2015/04/15 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
js数组去重的方法总结
2019/01/18 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
举例区分Python中的浅复制与深复制
2015/07/02 Python
python僵尸进程产生的原因
2017/07/21 Python
python获取外网IP并发邮件的实现方法
2017/10/01 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
python批量获取html内body内容的实例
2019/01/02 Python
python django model联合主键的例子
2019/08/06 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
怎么快速自学python
2020/06/22 Python
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
美国在线家装零售商:Build.com
2016/09/02 全球购物
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
国家励志奖学金获奖感言
2014/01/09 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
少先队学雷锋活动总结范文
2014/03/09 职场文书
商业房地产广告语
2014/03/13 职场文书
失职检讨书大全
2015/01/26 职场文书
经费申请报告范文
2015/05/18 职场文书
MySQL中in和exists区别详解
2021/06/03 MySQL