Angular1 - ng-Wiederholung aus einer Funktion nicht aktualisiert, wenn die zugrundeliegenden Modelländerungen

stimmen
0

Ich habe einen Block von Kontrollkästchen auf einer ng-repeat jedoch anstelle der ng-repeat ein Bereichsobjekt direkten ist, ist es auf eine Funktion, die ein Multi-Level-Array abflacht, die in ihrem Umfang ist $ scope.customReportsCtrl.districts genannt.

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>

Winkelreglerfunktion:

$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;
    }

Anzeige und Interaktion funktioniert gut. Aber jetzt bin ich versucht, eine Funktion zu machen, dass alle Elemente deslects. Ich versuche, dies zu tun, indem sie das $ scope.customReportsCtrl.districts Modell zu aktualisieren. Aber es hat keinen Einfluss auf die HTML.

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

Das Ganze scheint ein bisschen chaotisch. Bin ich richtig in der Annahme, dass, weil die ng-Repeat-Funktion verwendet, ist es nicht halten, das zurückgegebene Objekt des Staates hat?

Veröffentlicht am 19/03/2020 um 22:04
quelle vom benutzer
In anderen Sprachen...                            

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