Angular js动态选择不绑定到ngmodel

时间:2017-05-18 03:49:53

标签: angularjs select options

我使用$ scope对象中的ngrepeat动态生成一个select,需要根据同一$ scope对象中的另一个值分配默认的select选项: 这是当前的代码:

<select id="group" ng-model="data.group" convert-to-number>
    <option ng-repeat="item in data.groups" value="{{item.id}}">
        {{item.group}}
    </option>
</select>
{{data.group}}

控制器中的对象:

$scope.data = {
    group: 2,
    groups: [{
        id: 1,
        name: 'Group One'
    },{
        id:2,
        name: 'Group Two'
    },{
        id:3,
        name: 'Group Three'
    }]
}

convert-to-number是一个指令,它将$ scope值转换为数字以匹配select选项的id,如果我创建硬编码选项,一切都有效。

一旦我使用ng-repeat动态生成选项,它会在select中显示data.groups中的正确选项,并在{{data.group}}中显示正确的组ID,但是选择框是空白的我必须单击以查看选项,当我选择一个选项时,它会将{{data.group}}更新为选项的选定值。

正如硬编码选项所述,所有代码都有效,默认情况下会根据{{data.group}}值选择正确的选项。

为什么data.group在首次初始化时没有在这些动态选项中选择选项?

由于

1 个答案:

答案 0 :(得分:1)

AngularJS的工作方式是使用ng-selected标记中的<option>来确认哪个选项与模型匹配。以下示例代码可以使用:

<option ng-selected="data.group == item.id"> ... </option>