Angular1 - ng répétition d'une fonction ne met pas à jour lorsque le modèle change sous-jacents

voix
0

J'ai un bloc de cases à cocher sur un ng répétition, mais au lieu de la ng répétition étant un objet de portée directe, il est une fonction qui aplatit un tableau à plusieurs niveaux qui est portée appelée scope.customReportsCtrl.districts $.

HTML

<li class=option ng-repeat=district in customReportsCtrl.subDistricts() | orderBy: customReportsCtrl.districtOrder | limitTo: 4>
        <input type=checkbox name=district id=d{{district.IDSubDistrictLogical}}cbx class=custom
            ng-model=district.selected ng-change=customReportsCtrl.districtSelectionChanged(district)
            ng-disabled=!customReportsCtrl.shouldDisplayDistrict() || (customReportsCtrl.selectedDistrictsChecked == customReportsCtrl.selectedDistrictsLimit && !district.selected)><!--
         --><label for=d{{district.IDSubDistrictLogical}}cbx><span></span>{{district.SubDistrictName}}</label>
    </li>

Fonction Contrôleur angulaire:

$scope.customReportsCtrl.subDistricts = function(){
        var subDistricts = new Array();

        angular.forEach($scope.customReportsCtrl.districts, function(districtDetail, districtKey) {
            angular.forEach(districtDetail.subDistricts, function(subDistrictDetail, subDistrictKey) {
                subDistricts.push(subDistrictDetail);
            });
        });
        return subDistricts;
    }

Affichage et interaction fonctionne très bien. Mais maintenant, je suis en train de faire une fonction qui deslects tous les éléments. Je tente de le faire en mettant à jour le modèle scope.customReportsCtrl.districts $. Mais il n'a pas d'impact sur le HTML.

function resetDistrictSelections() {
        angular.forEach($scope.customReportsCtrl.districts, function(districtDetail, districtKey) {
            districtDetail.checked = false;
            angular.forEach(districtDetail.subDistricts, function(subDistrictDetail, subDistrictKey) {
                subDistrictDetail.checked = false;
            });
        });
    }

Le tout semble un peu salissante. Ai-je raison de supposer que parce que la répétition ng utilise une fonction, il n'a pas la main sur l'état de l'objet retourné?

Créé 19/03/2020 à 22:04
source utilisateur
Dans d'autres langues...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more