Angular js 动态 select 未绑定到 ngmodel
Angular js dynamic select not binding to ngmodel
我正在使用 $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 },但是 select 框是空白的,我必须单击以查看选项,当我 select 一个它然后将 {{data.group}} 更新为 selected期权的价值。
如硬编码选项所述,所有代码均有效,并且默认情况下根据 {{data.group}} 值 select 编辑正确的选项。
为什么 data.group 在第一次初始化时没有 select 在这些动态选项中设置选项?
谢谢
AngularJS 的工作方式是在 <option>
标签内使用 ng-selected
来确认哪个选项与模型匹配。以下示例代码可以工作:
<option ng-selected="data.group == item.id"> ... </option>
我正在使用 $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 },但是 select 框是空白的,我必须单击以查看选项,当我 select 一个它然后将 {{data.group}} 更新为 selected期权的价值。
如硬编码选项所述,所有代码均有效,并且默认情况下根据 {{data.group}} 值 select 编辑正确的选项。
为什么 data.group 在第一次初始化时没有 select 在这些动态选项中设置选项?
谢谢
AngularJS 的工作方式是在 <option>
标签内使用 ng-selected
来确认哪个选项与模型匹配。以下示例代码可以工作:
<option ng-selected="data.group == item.id"> ... </option>