基于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 数组的for循环到底应该怎么写?
May 31 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
Jul 16 Javascript
js正则表达exec与match的区别说明
Jan 29 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
Apr 30 Javascript
JavaScript中数组继承的简单示例
Jul 29 Javascript
js实现的动画导航菜单效果代码
Sep 10 Javascript
jQuery unbind()方法实例详解
Jan 19 Javascript
自学实现angularjs依赖注入
Dec 20 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
Dec 22 Javascript
jQuery创建及操作xml格式数据示例
May 26 jQuery
socket io与vue-cli的结合使用的示例代码
Nov 01 Javascript
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
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
用libTemplate实现静态网页的生成
2006/10/09 PHP
php $_SERVER当前完整url的写法
2009/11/12 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
redis+php实现微博(一)注册与登录功能详解
2019/09/23 PHP
js不是基础的基础
2006/12/24 Javascript
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
关于cookie的初识和运用(js和jq)
2016/04/07 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
2017/06/21 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
详解Python中heapq模块的用法
2016/06/28 Python
python妙用之编码的转换详解
2017/04/21 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
捐款倡议书
2014/04/14 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
检讨书怎么写
2015/01/23 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
2016猴年春节问候语
2015/11/11 职场文书
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫