<select>
<option>active</option>
<option>Deactive</option>
</select>
$scope.isActive = $scope.data.gameStatus;
我的选项不是动态的,所以我认为不应该使用ng-option
,假设$scope.isActive的值是true
,如何使用选择的active
选项。
发布于 2015-09-03 06:05:14
将select
与ngModel
绑定
试着像这样
<select ng-model="mycontrol.value">
<option>active</option>
<option>Deactive</option>
</select>
js
$scope.mycontrol={
value:''
};
$scope.mycontrol.value="active";
编辑
来自api的数据是真实的,而不是“活动的”,
试着像这样
var flag = true;
$scope.mycontrol.value= flag ? "active" : "Deactive";
发布于 2015-09-03 06:03:57
请参阅ngSelected
这里的文档。
只需在您的ng-selected="isActive"
上添加<option>
即可。
发布于 2015-09-03 06:40:15
这其实是个有点棘手的问题。首先,您需要设置ngModel
指令。但是即使这样做,它也不会工作,因为您的模型是布尔型的,而选项值当然是一个字符串。角不能正确地约束这样的模型。(当然,只有当您不想使用ngOptions
,只想使用简单的静态选项时,这在本例中是完全有意义的)。
幸运的是,正式文档包含一些暗示。解决方案是再添加一个助手指令,将布尔值转换为用于选项选择的字符串,将字符串转换为布尔值,以便从所选选项写入模型值。
angular.module('demo', []).controller('MainController', function($scope) {
$scope.isActive = true;
})
.directive('convertToBoolean', function() {
return {
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
ngModel.$parsers.push(function(val) {
return val == 'true';
});
ngModel.$formatters.push(function(val) {
return val + '';
});
}
};
});
<script src="https://code.angularjs.org/1.4.3/angular.js"></script>
<div ng-app="demo" ng-controller="MainController">
<select ng-model="isActive" convert-to-boolean>
<option value="true">Active</option>
<option value="false">Deactive</option>
</select> {{isActive}}
</div>
因此,在本例中使用ngOptions会更简单:)
https://stackoverflow.com/questions/32377794
复制相似问题