选择/选项 ng-model 未绑定 ng-selected
select/options ng-model is not bound with ng-selected
JSFiddle
我有这个 AngularJS html,用于根据外部值(选定组)默认选择/选项的选定项目。此列表应该有一个空选项("-ROOT-"选项):
<select class="form-control" ng-model="newDoor.groupId">
<option value="">-ROOT-</option>
<option ng-repeat="group in groups" ng-value="group.id" ng-selected="group==selectedGroup">
{{group.name}}
</option>
</select>
问题是:当 ng 选择条件导致选择某个选项时,NG 模型不受此选择的影响,但是当您更改该选项时,ng 模型将获取该值。如何让ng模型的值直接采用自动选择选项?
您应该使用 ngOptions
. ngOptions 旨在使用作为属性传递的微语法填充选择输入。
例如,在您的情况下,您可以使用以下内容:
<select ng-model="newDoor.groupId"
ng-options="group.id as group.name for group in groups">
这将列出groups
中的每个group
,使用 group.id
作为值并显示group.name
作为名称。它为您处理更改检测。
您唯一需要做的多件事是考虑此要求:
此列表应该有一个空选项("-ROOT-"选项):
我通过在groups
数组的前面添加另一个选项来做到这一点:
$scope.groups.unshift({ name: '-ROOT-', id: -1 });
最后,为了确保在作用域初始化时选择了真实的东西,此行设置newDoor.groupId
:
$scope.newDoor = { groupId: $scope.groups[0].id }
在此处查看更新的小提琴
您可以在控制器中实现此目的,方法是首先将其预定义为新对象,然后在为 selectedGroup 放置值时放置值。
法典:
function doorsTreeController($scope) {
$scope.newDoor = {};
$scope.groups = [{
name: 'G1',
id: 1
}, {
name: 'G2',
id: 2
}, {
name: 'G3',
id: 3
}, {
name: 'G4',
id: 4
}];
$scope.selectedGroup = $scope.groups[1];
$scope.newDoor.groupId = $scope.selectedGroup.id;
}
工作小提琴
或
在HTML中有一个ng-init,其余代码按原样。
<div ng-app>
<div ng-controller='doorsTreeController'>
<select class="form-control" ng-init="newDoor.groupId = selectedGroup.id" ng-model="newDoor.groupId">
<option value="">-ROOT-</option>
<option ng-repeat="group in groups" ng-value="group.id" ng-selected="group==selectedGroup">{{group.name}}</option>
</select>Selected groupId is: {{newDoor.groupId}}</div>
更新的小提琴
相关文章:
- ng绑定和ng href问题.ng href未从控制器加载数据
- 绑定的角度ng-max问题
- ng绑定html不工作
- NG-重复中断指令模型绑定
- 如何绑定提交每ng次点击
- 双向绑定不适用于ng重复
- 有没有一种方法可以在设计模式下将ng模型或工厂绑定到iframe
- 我们可以将ng绑定值存储到php字符串中吗
- ng-repeat不绑定ng-model对象数组
- 选择/选项 ng-model 未绑定 ng-selected
- 双向绑定 ng-repeat 中的字符串数组
- 使用$scope属性绑定ng-includ-src
- 在ng-bind-html中绑定ng-click::在HTML中绑定Angular属性
- 在Angularjs中选择绑定ng-model的对象
- 绑定ng-options数组中的一个属性
- AngularJs -重新绑定ng-model
- AngularJS:在ng-repeat中绑定ng-model
- 在ng-repat中绑定ng-model的正确方法
- 在angularjs中用scope绑定ng-model的一部分
- 在AngularJS的ng-repeat循环中绑定ng-model