在角度上,如果需要,使用 Track by 按值而不是按引用来跟踪选择是一个不错的功能。但是假设我将数组切换到后面并且选定的对象 id 匹配一个新的 Id 我希望选择也改变
我如何强制它重新评估?
HTML:
<select ng-options="option.id for option in collection track by option.id" ng-model="selectedObject"></select>
<button ng-click="updateCollection()">Update</button>
JS:
$scope.collection = [{
id: 1,
value: 0
}, {
id: 2,
value: 0
}, {
id: 3,
value: 0
}];
$scope.selectedObject = $scope.collection[0];
$scope.updateCollection = function () {
var newColl = [{
id: 1,
value: 100
}, {
id: 2,
value: 200
}, {
id: 3,
value: 300
}];
$scope.collection = newColl;
可以说我选择Id 2
然后更新selectedObject
仍然是旧的id:2 value:0
,我希望它直接更改为id:2 value:200
.
https://jsfiddle.net/IngoVals/p4ye3uaq/
PS为什么angular.copy
小提琴中的工作不起作用?