为什么这个angularjs ng-model没有更新到正确的值?

use*_*203 3 angularjs

function buildControl($scope){
    $scope.test_obj = {
        used:3,
        data:[{id:1},{id:2},{id:3},{id:4}]
    };
}

<div ngApp>
    {{test_dict.used}}
    <select ng-model="test_obj.used">
        <option ng-repeat=" d in test_obj.data" value="{{d.id}}">{{d.id}}</option>
    </select>
</div>
Run Code Online (Sandbox Code Playgroud)

为什么选择器总是选择第一个选项,而我期望它会选择第三个值等于3的选项?

dfs*_*fsq 7

你也可以使用ng-options指令来做到这一点:

<div ng-app ng-controller="buildControl">
    {{test_obj.used}}
    <select ng-model="test_obj.used"
            ng-options="d.id as d.id for d in test_obj.data"></select>
</div>
Run Code Online (Sandbox Code Playgroud)

演示Plunker.


Ban*_*ack 6

ng-value改用.

http://jsfiddle.net/bateast/LsEL5/

HTML:

<option ng-repeat=" d in test_obj.data" ng-value="d.id">{{d.id}}</option>
Run Code Online (Sandbox Code Playgroud)

JS:

function buildControl($scope){
    $scope.test_obj = {
        used:3,
        data:[{id:1},{id:2},{id:3},{id:4}]
    };
}
Run Code Online (Sandbox Code Playgroud)