我的控制器里有这个:
$scope.myList= [1, 2, 3];
我有一些看起来像这样的HTML:
<h2>Test Dynamic {{ myList.length }}</h2>
<div ng-repeat="ps in myList">
<ng-include src="'partials/whatever.html'" >
</ng-include>
</div>
<span data-ng-click="myList.push(1)">Add</span>
单击跨度时,标记中的计数会增加,但列表不会更新。这只需要略微起作用;让用户使用“添加”按钮添加元素,并使用部分模板中的删除按钮删除一个元素。知道为什么这不起作用吗?
答案 0 :(得分:3)
问题是你要添加一个重复的元素而你还没有在track by
函数中指定ng-repeat
,因此angular认为它是相同的元素,所以你可以这样解决它:
<h2>Test Dynamic {{ myList.length }}</h2>
<div ng-repeat="ps in myList track by $index">
<ng-include src="'partials/whatever.html'" >
</ng-include>
</div>
<span data-ng-click="myList.push(1)">Add</span>