我有一个包含一些输入字段和单选按钮的表单。在特定输入上,我想启用单选按钮。这是html文件:
<div ng-controller="participantCtrl">
{{specialEnabled}}
<form>
<input type="text" class="form-control" placeholder="Name" ng-model="participant.name" ng-model-options="{ getterSetter: true }">
<div id="choice">
<input type="radio" ng-disabled="{{specialEnabled}}" name="specialchoice" value="Value1"> Value1
<input type="radio" ng-disabled="{{specialEnabled}}" name="specialchoice" value="Value2"> Value2
</div>
<input type="submit" value="submit"></input>
</form>
</div>
这是控制器:
SomeControllers.controller('participantCtrl', ['$scope', function($scope) {
$scope.specialEnabled = "true";
var _name = '';
$scope.participant = {
name: function(newName) {
if (angular.isDefined(newName)) {
_name = newName;
if (_name == "Foo"){
$scope.specialEnabled = "false";
}
}
return _name;
}
};
}]);
我所做的是检查名称是否为Foo,然后将禁用更改为false。发生了什么。我在表单顶部打印specialEnabled,一旦名称匹配,它就会从true变为false,但它不会启用单选按钮。我做错了什么?
答案 0 :(得分:1)
ng-disabled
是angularjs指令,您不需要添加括号。只需使用
ng-disabled="specialEnabled"
答案 1 :(得分:1)
ng-disabled
使用双向绑定。
specialEnabled是布尔值true/false
ng-model-options
。
我们不需要ng-disabled
<input type="radio" ng-disabled="specialEnabled" name="specialchoice" value="Value1">