Gac*_*cha 5 javascript angularjs
所以,我可以从子控制器更改模型值,但是当子控制器在ng-switch中时,它不起作用,为什么?我创建了一个示例来演示它.
避免这种情况的一种方法是使用.模型名称,例如bunnies.kills.这是一个错误还是这个功能?
使用Angular 1.0.6
使用您的代码结构,在您的子控制器中,您需要更改:
$scope.$parent.kills++;
Run Code Online (Sandbox Code Playgroud)
至
$scope.$parent.$parent.kills++;
Run Code Online (Sandbox Code Playgroud)
说明:MainCtrl的范围是父的范围SimpleParentCtrl,但是祖父母Step1Ctrl和Step2Ctrl.正如其他人指出的那样,ng-switch创建自己的范围,然后你Step1Ctrl和Step2Ctrl每个人创建了一个子范围ng-switch.
注意:每次单击1或2按钮时ng-switch,它和当前匹配的子控制器都会获得一个新范围.
另外:如果您正在查看Angular源并且想知道该ng-switch指令如何在没有scope属性的情况下创建自己的范围,答案是它在链接方法中手动执行scope.$new().该指令ng-include,ng-switch,ng-repeat,和ng-view所有的创造新的范围这样一来,无论是在链接方法或编译方法的返回链接功能.
资源:
https://github.com/angular/angular.js/wiki/The-Nuances-of-Scope-Prototypal-Inheritance http://www.youtube.com/watch?v=ZhfUv0spHCY&feature=youtu.be&t=30m
| 归档时间: |
|
| 查看次数: |
6272 次 |
| 最近记录: |