ng-repeat 部分中的 angular 个控制器是同一个实例吗?
are angular controllers within an ng-repeat section the same instance?
我试图让 html 的一部分和关联的控制器重复,但我发现控制器似乎是一个单一的对象。也就是说,当我更改其中一个控制器的属性时,它会更改所有控制器。我是在做错什么还是这是预期的行为?
Here is a simplified jsfiddle 这说明了这个问题。我希望每个 "upgrade slot" 都有自己的 selectedUpgrade
值,但似乎它们都是相连的。
slotCtrl
设置在分区 div 上,而不是插槽 div 上。所以每个重复的插槽都使用相同的控制器。参见 https://jsfiddle.net/hzzq5j3h/
而不是
<div ng-repeat="district in mainCtrl.districts"
ng-controller="slotController as slotCtrl">
<h4>{{district.name}} slots:</h4>
<div ng-repeat="slot in district.slots">
...
</div>
</div>
你想要
<div ng-repeat="district in mainCtrl.districts">
<h4>{{district.name}} slots:</h4>
<div ng-repeat="slot in district.slots" ng-controller="slotController as slotCtrl">
...
</div>
</div>
我试图让 html 的一部分和关联的控制器重复,但我发现控制器似乎是一个单一的对象。也就是说,当我更改其中一个控制器的属性时,它会更改所有控制器。我是在做错什么还是这是预期的行为?
Here is a simplified jsfiddle 这说明了这个问题。我希望每个 "upgrade slot" 都有自己的 selectedUpgrade
值,但似乎它们都是相连的。
slotCtrl
设置在分区 div 上,而不是插槽 div 上。所以每个重复的插槽都使用相同的控制器。参见 https://jsfiddle.net/hzzq5j3h/
而不是
<div ng-repeat="district in mainCtrl.districts"
ng-controller="slotController as slotCtrl">
<h4>{{district.name}} slots:</h4>
<div ng-repeat="slot in district.slots">
...
</div>
</div>
你想要
<div ng-repeat="district in mainCtrl.districts">
<h4>{{district.name}} slots:</h4>
<div ng-repeat="slot in district.slots" ng-controller="slotController as slotCtrl">
...
</div>
</div>