Son zamanlarda Angular.js ile oynuyordum ve ng-model
ve ng-checked
yönergelerini kullanarak yaptım ebeveyn onay kutusu işaretlendiğinde tüm onay kutularını işaretlemeye karar verdim.Angular.js'de alt onay kutularına göre ebeveyn onay kutusu nasıl seçilir?
<div ng-app>
<div ng-controller="Ctrl">
<input type="checkbox" ng-model="parent"/> Select All<br/>
<input type="checkbox" ng-model="child_1" ng-checked="parent" ng-click="getAllSelected()"/> First<br/>
<input type="checkbox" ng-model="child_2" ng-checked="parent" ng-click="getAllSelected()"/> Second<br/>
<input type="checkbox" ng-model="child_3" ng-checked="parent" ng-click="getAllSelected()"/> Three<br/>
<input type="checkbox" ng-model="child_4" ng-checked="parent" ng-click="getAllSelected()"/> Four<br/>
<input type="checkbox" ng-model="child_5" ng-checked="parent" ng-click="getAllSelected()"/> Five<br/>
</div>
</div>
Şimdi, tüm onay kutularını işaretledikten sonra bazı sorunları işaretledikten sonra tüm üst onay kutusunu işaretlemeye çalışıyorum.
function Ctrl($scope) {
$scope.getAllSelected = function() {
var chkChild = document.querySelectorAll('input[ng-model^="child_"]').length;
var chkChildChecked = document.querySelectorAll('input[ng-model^="child_"]:checked').length;
if (chkChild === chkChildChecked) $scope.parent= true;
else $scope.parent= false;
}
}
Demo: http://jsfiddle.net/codef0rmer/QekpX/
yukarıda kod daha sağlam yapabilir miyim?
Ne Onay kutularının herhangi işaretini bir kez gerçekleşmesi bekliyorsunuz? –
Yukarıdaki demo bağlantısını ekledim. Ebeveyn onay kutusunu işaretlediğimde, tüm çocuk onay kutularını kontrol eder. Ancak, kontrol edilen çocuk onay kutularından birinin işaretini kaldırdığımda, üst öğenin işaretini de kaldırmalı. – codef0rmer
Tüm onay kutularının senkronize olması gerektiği gibi mi? –