基于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 相关文章推荐
JS判断是否为数字,是否为整数,是否为浮点数的代码
Apr 24 Javascript
PHP守护进程实例
Mar 06 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
Apr 06 Javascript
Node.js模块封装及使用方法
Mar 06 Javascript
jQuery仿京东商城楼梯式导航定位菜单
Jul 25 Javascript
JavaScript实现图片瀑布流和底部刷新
Jan 02 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
Mar 20 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
Apr 21 Javascript
JS实现搜索关键词的智能提示功能
Jul 07 Javascript
Vue仿今日头条实例详解
Feb 06 Javascript
浅入深出Vue之自动化路由
Aug 06 Javascript
如何使用webpack打包一个库library的方法步骤
Dec 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分页函数示例代码分享
2014/02/24 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
jQuery下的动画处理总结
2013/10/10 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
JS弹出新窗口被拦截的解决方法
2016/08/09 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
easyUI下拉列表点击事件使用方法
2017/05/18 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
vue使用Proxy实现双向绑定的方法示例
2019/03/20 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
python使用tkinter实现简单计算器
2018/01/30 Python
Python异常处理操作实例详解
2018/05/10 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
浅谈Python type的使用
2019/11/19 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
python 监控logcat关键字功能
2020/09/04 Python
Django多个app urls配置代码实例
2020/11/26 Python
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
金士达面试非笔试
2012/03/14 面试题
Ajax的工作原理
2015/12/04 面试题
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
2014年销售助理工作总结
2014/12/01 职场文书
工程部文员岗位职责
2015/02/04 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang