2016-04-08 4 views
0

Снова, что-то очень простое, Угловое усложняет.Угловая проверка всех флажков независимо от их состояния

У меня есть несколько флажков:

<!-- $scope.checked == true --> 
<li ng-repeat="(type, description) in types"> 
    <input type="checkbox" ng-checked="checked"> 
</li> 

Я не волнует, если они проверены или нет - один мог бы проверить другой бесконтрольно. Я просто хочу вызвать «проверить все» из соответствующего контроллера.

Что меня озадачивает в том, что некоторые из подходов в Интернете, похоже, занимают 5+ строк кода .. как это может быть. 5+ линий для такой простой вещи, забудьте об этом.

Все рекомендации оценены.

EDIT:

До сих пор не работают люди, вот мой код контроллера:

$scope.checked = true; 

$scope.checkAll = function() 
{ 
    $scope.checked = true; 
}; 

$scope.submitForm = function() 
{ 
    $scope.checkAll(); 

    // other stuff... 
}; 

Если один флажок, а другой снят, ничего не происходит на submitForm()

+0

попробуйте $ parent.checked. –

ответ

1

Проблема в том, что checked всегда «истинна». Вы действительно не меняете значение.

Вместо этого вы можете рассчитывать, так как 1,2,3 все разные, но все правдивые. Чувствует себя немного взломанным.

$scope.checked = 1; 

$scope.checkAll = function() 
{ 
    $scope.checked++; 
}; 
+0

Бум, который сделал это, меня интересовал бы менее хакерский подход, но, к счастью, вы все равно. Кажется достаточно элегантным для меня. –

0

В вашем контроллере оных

$scope.checkall = function(){ 
$scope.checked=true 
} 
$scope.checkall() 

See Fiddle

0

может принимать любое выражение, если оно разрешает правдивость или ложь. У вас может быть переменная master, которую вы можете перевернуть в своем контроллере, если хотите отметить все поля.

<li ng-repeat="(type, description) in types"> 
    <input type="checkbox" ng-checked="master"> 
</li>