[英]<select> with ng-model and static options (true/false)
我有一个简单的select元素,我想用它来设置一个布尔值:
# JS; somewhere inside the controller
var vm = this;
vm.isAdmin = false;
return vm;
# HTML
<select ng-model="formCtrl.isAdmin">
<option ng-value="true">Yes</option>
<option ng-value="false">No</option>
</select>
不幸的是,在加载网站时,没有选择任何内容。 我知道我可以使用ng-repeat,但是我不想这样做,因为它对我来说似乎不切实际。
更新:尽管可能的重复项基本上具有相同的可接受答案(因为这是实现所需行为的最佳方法),但问题本身是不同的。 我实际上想使用硬编码选项,而不是ng-options / ng-repeat。
为什么不使用ng-options
呢?
<select ng-model="form.isAdmin" ng-options="o.value as o.name for o in options"></select>
控制器中的options
数组:
$scope.options = [
{ 'name': 'Yes', 'value': true },
{ 'name': 'No', 'value': false }
];
var myApp = angular.module('myApp', []); myApp.controller('MyCtrl', [function() { var vm = this; vm.isAdmin = false; vm.adminOptions = [{ val: true, name: 'Yes' }, { val: false, name: 'No' }]; }]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="myApp"> <div ng-controller="MyCtrl as form"> <select ng-model="form.isAdmin" ng-options="opt.val as opt.name for opt in form.adminOptions"> </select> {{form.isAdmin}} </div> </div>
使用ng-options
:
<select ng-model="form.isAdmin"
ng-options="opt.val as opt.name for opt in [{val:true,name:'Yes'},{val:false,name:'No'}]">
</select>
您基本上需要对选项标签使用以下语法(使用ng-selected):
<select ng-model="formCtrl.isAdmin">
<option ng-value="true" ng-selected="formCtrl.isAdmin">Yes</option>
<option ng-value="false" ng-selected="!formCtrl.isAdmin">No</option>
</select>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.