在特定输入上启用单选按钮

时间:2015-03-11 14:35:39

标签: javascript html angularjs

我有一个包含一些输入字段和单选按钮的表单。在特定输入上,我想启用单选按钮。这是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,但它不会启用单选按钮。我做错了什么?

2 个答案:

答案 0 :(得分:1)

ng-disabled

是angularjs指令,您不需要添加括号。只需使用

ng-disabled="specialEnabled"

答案 1 :(得分:1)

ng-disabled使用双向绑定。

specialEnabled是布尔值true/false

角度版本1.3中引入了

ng-model-options

我们不需要ng-disabled

的插值
<input type="radio" ng-disabled="specialEnabled" name="specialchoice" value="Value1">

Plnkr:http://plnkr.co/edit/YAnTypvRjfJIL7Z4pC4s?p=preview