基于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
Nov 25 Javascript
js CSS操作方法集合
Oct 31 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
Apr 30 Javascript
jqgrid 表格数据导出实例
Nov 21 Javascript
javascript面向对象之对象的深入理解
Jan 13 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
Jun 07 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
Jan 22 Javascript
详解ES6系列之私有变量的实现
Nov 21 Javascript
7个好用的JavaScript技巧分享(译)
May 07 Javascript
微信小程序云开发之使用云数据库
May 17 Javascript
基于js判断浏览器是否支持webGL
Apr 18 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
May 13 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不允许用户提交空表单(php空值判断)
2013/11/12 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
php实现的操作excel类详解
2016/01/15 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
PHP实现函数内修改外部变量值的方法示例
2018/12/28 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
获取body标签的两种方法
2011/10/13 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
window.onload使用指南
2015/09/13 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
2016/04/17 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
AngularJS入门教程引导程序
2016/08/18 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
js实现本地图片文件拖拽效果
2017/07/18 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
详解vue中this.$emit()的返回值是什么
2019/04/07 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
微信小程序如何实现在线客服功能
2019/10/16 Javascript
python 排序算法总结及实例详解
2016/09/28 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
2021/02/25 Python
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
UML设计模式笔试题
2014/06/07 面试题
超市国庆节促销方案
2014/02/20 职场文书
《社戏》教学反思
2014/04/15 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
出生证明范本
2015/06/15 职场文书
四十九个javascript小知识实用技巧
2021/11/20 Javascript