ng-click
スコープ内の値がクリックから更新されていないため、バージョン 1.2.0-rc.3 で壊れたのコードがいくつかあります。ここにダムダウンバージョンがあります:
HTML:
<div ng-app="" ng-controller="MyCtrl">
<input type="checkbox" ng-model="checkAll" ng-click="allChecked()"/>
<input type="checkbox" ng-model="check1"/>
<input type="checkbox" ng-model="check2"/>
<input type="checkbox" ng-model="check3"/>
<input type="checkbox" ng-model="check4"/>
<input type="checkbox" ng-model="check5"/>
<p/>
All: {{checkAll}}<br/>
1: {{check1}}<br/>
2: {{check2}}<br/>
3: {{check3}}<br/>
4: {{check4}}<br/>
5: {{check5}}<br/>
</div>
JavaScript:
function MyCtrl($scope)
{
$scope.allChecked = function() {
console.log($scope.checkAll);
if ($scope.checkAll)
{
$scope.check1 = true;
$scope.check2 = true;
$scope.check3 = true;
$scope.check4 = true;
$scope.check5 = true;
}
else
{
$scope.check1 = false;
$scope.check2 = false;
$scope.check3 = false;
$scope.check4 = false;
$scope.check5 = false;
}
}
}
1.2.0-rc.2 をいじる: http://jsfiddle.net/73E26/
1.2.0-rc.3 ( http://jsfiddle.net/LZR6j/ ) とまったく同じセットアップで、期待どおりに動作するようになりました。$scope.checkAll
チェックされているにもかかわらず、false です。そのため、1.2.0-rc.2 の場合のように、クリック リスナーが呼び出される前にモデルが更新されません。これを引き起こしている変更は何ですか?(http://jsfiddle.net/8VV7N/ng-change
)の代わりに使用することでこれを機能させることができることがわかりましたが、何が起こっているのかを理解したいので、将来の決定に基づいています。誰でもこれに光を当てることができますか?ng-click