启动值未设置选定值

时间:2015-02-24 15:12:22

标签: javascript angularjs

我做了一个简单的angular.js示例,它显示了我的问题:example

我想将select元素的起始值设置为特定值。

    <select name="i" id="i" ng-model="selectedItem">
        <option ng-repeat="i in items" value="{{i}}">{{i}}</option>
    </select>

选项和选择元素完美呈现。但是,就像在示例中一样,当我将控制器中的值设置为6时,页面上的选定值仍然是第一个元素。

scope.selectedItem = 6;

有2个简单按钮可以更改所选值。当你按下它们时,选择没有问题。

编辑:我更新了jsfiddle并删除了未使用的代码并重命名代码以使事情更加清晰

EDIT2:我错过了询问是否有可能修复第二个选择元素?不同的是,这个数组包含对象而不是数字。

    <select name="o" id="o" ng-model="selectedItem">
        <option ng-repeat="o in objects" ng-value="{{o.ID}}">{{o.Text}}</option>
    </select>

1 个答案:

答案 0 :(得分:2)

您不应该使用ngRepeat来呈现选项元素,它不应该与select和options一起正常工作。使用ngOptionsngModel

可以正常工作
<select name="i" id="i" 
        ng-model="selectedItem"
        ng-options="i for i in items">
</select>

对于第二个选择框,其ngModel绑定到数组中对象的ID属性,它将是:

<select name="o" id="o" 
        ng-model="selectedItem" 
        ng-options="obj.ID as obj.Text for obj in objects">
</select>

演示: http://jsfiddle.net/d3jf7ueq/9/