在角度中,如果需要,使用Track by按值而不是按引用来跟踪选择是一个很好的功能。但是我可以说我将数组切换到后面并且所选对象id与新Id匹配我希望select也能改变
如何强制重新评估?
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/
P.S。为什么angular.copy
不适合小提琴?