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>