使用ng-repeat动态禁用

时间:2015-06-11 06:26:51

标签: angularjs

我正在尝试在按钮单击事件上禁用一组无线电,这些事件是使用ng-repeat动态生成的,但是我只需要禁用未检查的无线电按钮。

<label class="radio" ng-repeat="questionValue in question.values">
    <input type="radio" name="{{question.name}}"
           ng-model="attrs[question.name]" value="{{questionValue[1]}}" >
    <i></i>
    {{questionValue[0]}}
</label>

2 个答案:

答案 0 :(得分:0)

您可以做的是:

<label class="radio" ng-repeat="questionValue in question.values">
    <input type="radio" name="{{question.name}}"
           ng-model="attrs[question.name]" value="{{questionValue[1]}}" 
           ng-disabled="disabler[$index]">
    <i></i>
    {{questionValue[0]}}
</label>

然后在控制器内部,你可以创建一个布尔数组:

$scope.disabler = [];
for (var i = 0; i < $scope.question.values.length; i++){
    $scope.disabler.push(false);
}

然后在您的点击处理程序中添加您的逻辑:

for (var i=0; i < $scope.disabler.length; i++){
    if (yourLogic)
       $scope.disabler[i] = true;
}

答案 1 :(得分:0)

您可以使用ng-disabled属性。然后在单击按钮时在控制器上设置一个值,然后执行以下操作:

<input type="radio" name="{{question.name}}"
           ng-model="attrs[question.name]" value="{{questionValue[1]}}"
ng-disabled="[yourButtonValue] && [radioButton.disabled] == false" >