基于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 相关文章推荐
jquery图片延迟加载 前端开发技能必备系列
Jun 18 Javascript
Web跨浏览器进程通信(Web跨域)
Apr 17 Javascript
uploadify在Firefox下丢失session问题的解决方法
Aug 07 Javascript
jsp网页搜索结果中实现选中一行使其高亮
Feb 17 Javascript
悬浮数字的实现案例
Feb 19 Javascript
jQuery获取上传文件的名称的正则表达式
May 21 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
May 12 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
Mar 28 jQuery
AngularJS使用拦截器实现的loading功能完整实例
May 17 Javascript
layui下拉列表select实现可输入查找的方法
Sep 28 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 Javascript
vue 中的动态传参和query传参操作
Nov 09 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使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
jQuery 中国省市两级联动选择附图
2014/05/14 Javascript
JS定时器用法分析【时钟与菜单中的应用】
2016/12/21 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
python socket 超时设置 errno 10054
2014/07/01 Python
Python素数检测实例分析
2015/06/15 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
Python单元测试简单示例
2018/07/03 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
数控专业个人求职信范文
2014/02/05 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
优秀辅导员事迹材料
2014/02/16 职场文书
电气自动化专业职业规划范文
2014/02/16 职场文书
优秀护士获奖感言
2014/02/20 职场文书
中职生求职信
2014/07/01 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
长城的导游词
2015/01/30 职场文书
酒店人事专员岗位职责
2015/04/07 职场文书
话题作文之成长
2019/12/09 职场文书
HTML基础详解(上)
2021/10/16 HTML / CSS
AngularJS实现多级下拉框
2022/03/25 Javascript