2015-03-02 3 views
2

у меня есть флажок внутри таблицы, когда я проверяю один флажок я хочу, чтобы добавить инвалида класс ко всему прочему я пытался добиться этого, используя нг-классугловой нг-класс добавить класс для всех, кроме тока

<td scope="row"> 
<input 
    type="checkbox" 
    id="{{$index}}" 
    ng-class="{disabled: $index != currentid}"  
    ng-click="showOptions($event,'$index')" /> 
</td> 

внутренний контроллер

$scope.showOptions=function($event,id){ 
    if($event.target.checked){  
     $scope.btns = true; 
     $scope.details_tab = true; 
     $scope.currentid = id; 
    } 
    else { 
     $scope.btns = false; 
     $scope.details_tab = false; 
    } 
}; 

но используя это, когда страница загружает все флажки, отключил класс.

+1

Почему '$ index' является строкой? ==> 'showOptions ($ event, '$ index')'. Не должно быть 'showOptions ($ event, $ index)' –

ответ

0

но используя это, когда страница загружает все флажки, отключил класс.

Это связано с тем, что при загрузке страницы все значения индекса $ отличаются от currentid, которые вы устанавливаете только после щелчка.

Вы должны убедиться, что у вас есть извлеченная флажок:

$scope.showOptions = function ($event, id) { 
    if ($event.target.checked) { 
     $scope.btns = true; 
     $scope.details_tab = true; 
     $scope.currentid = id; 
     $scope.disableCheckboxes = true; //checking a checkbox 
    } else { 
     $scope.btns = false; 
     $scope.details_tab = false; 
     $scope.disableCheckboxes = false; //unchecking a checked checkbox 
    } 
}; 

И в HTML вы должны учитывать, что внутри вашего ng-click (также не нужны цитаты на $index как уже говорили другие) :

<td scope="row"> 
<input 
    type="checkbox" 
    id="{{$index}}" 
    ng-class="{disabled: disableCheckboxes && $index != currentid}"  
    ng-click="showOptions($event,$index)" /> 
</td> 
0

Возможно, вы можете добавить проверку на currentid. Добавьте класс только в том случае, если в «currentid» есть что-то, и индекс $ index не является текущим. Теперь вы можете установить currentid на undefined при загрузке страницы.

<td scope="row"><input type="checkbox" id="{{$index}}" ng-class="{disabled: $index != currentid && currentid}" ng-click="showOptions($event,'$index')"></td> 
+0

удалять кавычки из индекса, и это правильно. –

1

При вызове showOptions, $index не нужно быть строка со значением '$index'. Это должно быть значение $index:

<td scope="row"> 
    <input type="checkbox" 
      id="{{$index}}" 
      ng-class="{disabled: $index != currentid}" 
      ng-click="showOptions($event, $index)"/> 
</td> 

В противном случае, вы будете сравнивающие буквальное значение $index с целочисленным индексом (ех 0.).