控制器继承在angularjs中是如何工作的
How controller inheritance works in angularjs
我试图从主控制器继承一些属性,但不像我预期的那样工作。当我改变主控制器中的数据值时,它也会更新子控制器的值。一旦我专注于子控制器,然后开始工作,因为我例外。我有一个计数器在主控制器,我想存储由用户输入的数字,但当用户输入主控制器的计数它改变子控制器的计数。为什么它的更新子类。在angularjs中继承是如何工作的
<body ng-app="myapp">
<div ng-controller="MainController">
<label>Count for main controller</label>
<input type="text" ng-model="count">
<div ng-controller="subController">
<label> count for sub controller</label>
<input type="text" ng-model="count">
</div>
{{count}}
</div>
</body>
<script>
var myapp=angular.module('myapp',[]);
myapp.controller('MainController',function($scope){
$scope.count=0;
//other properties
});
myapp.controller('subController',function($scope){
//other properties
});
</script>
AngularJS在控制器中使用原型继承,这就是为什么当在基类中改变值时,它也会在子类中改变。子类直接从基类访问属性。
当我们关注子控制器时,它创建了自己的copy属性,并与基类中的属性断开连接。这是无法阻止的。
无论如何,我们可以强制更新基类属性作为子类更新属性购买分配对象到$scope而不是直接属性。
<body ng-app="myapp">
<div ng-controller="MainController">
<label>Count for main controller</label>
<input type="text" ng-model="val.count">
<div ng-controller="subController">
<label> count for sub controller</label>
<input type="text" ng-model="val.count">
</div>
{{val.count}}
</div>
</body>
<script>
var myapp=angular.module('myapp',[]);
myapp.controller('MainController',function($scope){
$scope.val={count:0}
//other properties
});
myapp.controller('subController',function($scope){
//other properties
});
现在在更新子属性时,它也会更新父属性并保持连接
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- 在JavaScript中的类中,push和concat的工作方式有何不同
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)