基于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 相关文章推荐
取得传值的函数
Oct 27 Javascript
js Flash插入函数免激活代码
Mar 31 Javascript
制作高质量的JQuery Plugin 插件的方法
Apr 20 Javascript
jquery 学习之二 属性(html()与html(val))
Nov 25 Javascript
jQuery.query.js 取参数的两点问题分析
Aug 06 Javascript
eclipse如何忽略js文件报错(附图)
Oct 30 Javascript
JS自调用匿名函数具体实现
Feb 11 Javascript
浅析JavaScript声明变量
Dec 21 Javascript
Jquery on绑定的事件 触发多次实例代码
Dec 08 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
Jul 13 Javascript
使用jQuery实现购物车
Oct 29 jQuery
Vue + ts实现轮播插件的示例
Nov 10 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 flush类输出缓冲剖析
2008/10/19 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
Json序列化和反序列化方法解析
2013/12/19 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
详解JavaScript中的链式调用
2020/11/27 Javascript
python实现获取Ip归属地等信息
2016/08/27 Python
python flask实现分页的示例代码
2018/08/02 Python
Python爬取商家联系电话以及各种数据的方法
2018/11/10 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
益模软件Java笔试题
2012/03/27 面试题
小学生暑假家长评语
2014/04/17 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
代办委托书怎么写
2014/08/01 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
什么是检讨书?检讨书的格式及范文
2019/11/05 职场文书
MySQL添加索引特点及优化问题
2022/07/23 MySQL