2016-04-08 6 views
0

もう一度、とても簡単なので、角度は複雑です。すべてのチェックボックスは状態に関係なくすべてチェックします

私はいくつかのチェックボックスがあります。

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

それらが確認されたりしていない場合、私は気にしない - 1は、他の未チェックをチェックすることができます。私は単に、対応するコントローラ内から「すべてをチェック」をトリガーしたいと思う。

オンラインのアプローチのいくつかは、5行以上のコードのように見えますが、どのようにすることができますか。そのような単純なことのために5本以上の線を忘れてしまいます。

すべてのアドバイスをいただければ幸いです。

EDIT:

まだ働いていない人たちは、ここに私のコントローラのコードです:1つのチェックボックスがチェックされ、別の未チェック、何もあなたのコントローラの追加でsubmitForm()

+0

try $ parent.checked。 –

答えて

1

問題は、チェックは常に「true」です。あなたは本当に値を変更していません。

1,2,3はすべて異なっているが真実だからだ。しかし、少しハッキリ感じる。

$scope.checked = 1; 

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

ブームでしたが、私はあまりハックのないアプローチに興味がありましたが、ありがとうございました。私にとって十分にエレガントだと思う。 –

0

に起こりません

$scope.checked = true; 

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

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

    // other stuff... 
}; 

場合

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

See Fiddle

0

ng-checkedは、真実または偽に解決される限り、任意の式をとることができます。あなたはすべてのボックスにチェックを入れたいときにコントローラ内でフリップできる変数masterを持つことができます。

<li ng-repeat="(type, description) in types"> 
    <input type="checkbox" ng-checked="master"> 
</li> 
関連する問題