angularjs 嵌套控制器,子控制器访问父控制器
<pre>
http://www.lovelucy.info/understanding-scopes-in-angularjs.html
http://blog.csdn.net/jfkidear/article/details/48463899
http://www.angularjs.cn/A09C 子控制器内如何访问父控制器中的变量?
若要访问变量名在子作用域中没有,那么$scope.aaa会找到父中进行访问。 在 AJS 里 子 Scope 会继承父 Scope 中的对象,但当你对基本数据类型(string, number, boolean)的 双向数据绑定 时,
就会出现一个问题:
继承并不像你想象的那样工作。子 Scope 的属性隐藏(覆盖)了父 Scope 中的同名属性,对子 Scope 属性(表单元素)的更改并不更新父 Scope 属性的值。
这个行为实际上不是 AngularJS 特有的,JavaScript 本身的原型链就是这样工作的。开发者通常都没有意识到 ng-repeat, ng-switch, ng-view 和 ng-include 统统都创建了他们新的子 scopes,
所以在用到这些 directive 时也经常出问题。
二、解决的办法 (子和父都用obj,且为不同的obj名字,若为一样obj名字,子只会访问自己的obj,改不了父的obj)
解决的办法:不使用基本数据类型,而在 Model 里永远多加一个点。。
也就是说:子作用域中使用对象+属性。如 子$scope.obj.a = 父$scope.obj.a
eg:
html: "在子控制器中"
使用 < input ng-model="obj2.pUser"/> 来替代 < input type="text" ng-model="pUser">
ajs:
$scope.obj2={
pUser:$scope.msg.a //$scope.msg在子中无此对象,在父控制器中有。
}; </pre>
<script src="angular-1.3.0.js"></script>
<div ng-controller="OparentController as pCtrl">
<p>直接访问父控制器的值:{{user}}</p>
<div ng-controller="OchildController as cCtrl">
<p>嵌套如何访问。。父控制器的值:失败:<input ng-model="pUser"/>成功:<input ng-model="obj2.pUser"/></p>
<p>子控制器的值:{{user}}</p>
<button ng-click="modiV()">clk:子控制器内修改父控制器内(作用域)的值</div>
</div>
</div>
<script>
var a10086=angular.module('a10086',[]);
a10086.controller('OparentController',function($scope){
$scope.user='parent_李四';
$scope.msg={a:'parent_李四',b:4,c:[1,34]};
}).controller('OchildController',function($scope){
$scope.user='child_张三';
$scope.pUser=$scope.msg.a;
$scope.obj2={
pUser:$scope.msg.a
};
$scope.modiV=function(){
$scope.msg.a="parent_李四 is modify";
$scope.obj2.pUser="parent_李四 is modify---obj";
console.log('子控制没有msg,才顺着原型链修改了:',$scope.msg, $scope.pUser);
}
});
</script>
angularjs 嵌套控制器,子控制器访问父控制器的更多相关文章
- 子窗口访问父页面iframe中的iframe,top打开的子窗口访问父页面中的iframe中的iframe
子窗口访问父页面iframe中的iframe 子窗口访问最顶层页面中的iframe中的iframe top打开的子窗口访问父页面中的iframe中的iframe top打开的子窗口访问最顶层页面中的i ...
- c# winform 子窗体访问父窗体中的方法和变量
今天的工作中突然用到这个了,不过以前没有接触过呢!不过,在有经验的同事的帮助下,这个问题也很快解决了.具体可以分为以下几种方式: 1.在父窗体中构造子窗体对象时,将父窗体传递过去: 如:FrmSub ...
- react 子组件访问父组件的方法
回调函数(推荐) 地址:https://ourcodeworld.com/articles/read/409/how-to-update-parent-state-from-child-compone ...
- JavaScript从父页面获取子页面的值(子页面又如何访问父页面)
之前还真没做过类似的东西,,top页面获取子页面的document.. 在百度搜了下即找到这个东东,还好,能用. 主要就是使用 contentWindow方法,获取子页面的所有document,再做处 ...
- 后盾网lavarel视频项目---3、lavarel中子控制器继承父控制器以判断是否登录
后盾网lavarel视频项目---3.lavarel中子控制器继承父控制器以判断是否登录 一.总结 一句话总结: 在common控制器的构造方法中验证登录中间件,其它的控制器继承common控制器 p ...
- thinkphp 访问其它控制器模板
默认的访问该方法对应得模板:$this->display() 访问其它控制器模板:$this->display(‘控制器名/方法’)
- Yii2中限制访问某控制器的IP(IP白名单)
有关Yii2.0鉴权之访问控制过滤器参考这篇文章 http://www.yiiframework.com/doc-2.0/guide-security-authorization.html 这里主要 ...
- CONTROLLER_NAME 常量 当前访问的控制器
CONTROLLER_NAME 常量 当前访问的控制器
- 4.功能三:实现URL地址栏控制(15分) (1)获取到当前访问的控制器和方法(5分) (2)对当前访问的控制器和方法进行判断,有权限继续访问(5分) (3)无权限给出提示(5分)
<?php namespace app\admin\controller; use think\Controller; use think\Request; class Base extends ...
随机推荐
- [译]Dynamics AX 2012 R2 BI系列-规划分析的注意事项
https://msdn.microsoft.com/en-us/library/gg731898.aspx 在开始实施AX的分析特性前,有很多事情要考虑.本文描述了你必须考虑的事情,和在 ...
- centos7 shell脚本实现随机数
questions: 1.随机数如何获得 2.如何确定随机值的大小是我们所需要的 answers: 1.目前可以通过获取系统时间的毫秒数来得到,毕竟毫秒数还是变化比较快的 可以看到这个速度还是变化很快 ...
- 不写完不回家的TreeSet
TreeSet详解 继承架构图: |——SortedSet接口——TreeSet实现类 Set接口——|——HashSet实现类 |——LinkedHashSet实现 ...
- [原]excel启动时死锁
项目中遇到的一个死锁问题! 代码大概如下: 调用SetWinEventHook安装了进程内钩子,dll注入到excel进程后,专门开启一个线程来分发监听到的事件信息,并在该线程内会获取IAcces ...
- SQL Server 取日期时间部分
在本文中,GetDate()获得的日期由两部分组成,分别是今天的日期和当时的时间: Select GetDate() 用DateName()就可以获得相应的年.月.日,然后再把它们连接起来就可以了: ...
- Latex环境安装
安装latex环境 sudo apt-get install texlive-full 推荐使用texstudio编辑器,简单方便高效靠谱 sudo apt-get install texstudio ...
- 渗透杂记-2013-07-13 windows/mssql/mssql_payload
扫描一下 Starting Nmap 5.30BETA1 ( http://nmap.org ) at 2011-05-06 09:36 中国标准时间 NSE: Loaded 49 scripts f ...
- PHP获取微信 accesstoken
PHP根据appid和secret获取微信access_token,php通过curl远程获取微信access_token信息微信公众号开启开发者模式,使用appid和secret请求微信获取acce ...
- 3.mvc core 文件目录详细的解释
wwwroot 放js css image的文件夹,静态文件. favicon.ico 网站图标.上传文件的话最好在里面新建一个Upload的文件夹进行管理 Controllers 控制器, View ...
- UIScrollView(滚动视图)
(1)常用属性: 1)@property(nonatomic)CGPointcontentOffset; 这个属性⽤用来表⽰示UIScrollView滚动的位置 2)@property(nonatom ...