2016-02-29 31 views
0

我有一个无线电输入,其中包含一个具有ng-disabled的ng-repeat,它会触发其中包含if if块的函数。如果满足其中一个条件,则返回一个布尔值。我的问题是,如果条件满足,我只希望某些无线电被禁用。目前,如果条件满足,则将为数组中的所有项目设置布尔值。如何在ng-repeat内部运行ng-disabled的函数并满足每个项目的条件?在ng-repeat中使用ng-disabled

+0

而是描述了这个问题,添加代码:) – giannisf

+0

例如,如果您的'ng-repeat'超过item中的item,您只需将'item'传递给'ng-disabled'函数,并返回布尔值。 –

回答

1

你必须通过项目或重复$指数您检查功能的分化,像这样:

<input ng-repeat="item in yourItems" type="radio" ng-disabled="yourChecker($index, item)"> 

并在控制器JS:

$scope.yourChecker = function(index, item){ 
    if(index==x){ 
     // TODO: return state here 
    } 

    // Or check item property 

    if(item.x){ 

    } 
} 
1
<form> 
    <input type="radio" ng-repeat="element in array track by $index" ng-disabled="isDisabled(element)">{{element}}</input> 
</form> 

在你的范围定义isDisabled,并使用任何给定的element的属性返回一个布尔值。如果您想根据索引执行此操作,则可以将$index也传递给该函数。