更新ng-options使用的数组,刷新所选对象

时间:2015-05-01 15:47:47

标签: javascript angularjs ng-options angularjs-track-by

在角度中,如果需要,使用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不适合小提琴?

0 个答案:

没有答案