Angular1 - NG-repetición de una función no se actualiza cuando cambia el modelo subyacente

votos
0

Tengo un bloque de casillas de verificación en un ng de repetición, sin embargo en lugar de la ng-repeat ser un objeto alcance directa, que está en una función que se aplana una matriz multi-nivel que está en el ámbito llama $ 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>

Angular de función del controlador:

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

Visualización e interacción está trabajando muy bien. Pero ahora que estoy tratando de hacer una función que deslects todos los artículos. Estoy tratando de hacer esto mediante la actualización del modelo $ scope.customReportsCtrl.districts. Pero no tiene ningún impacto en el código HTML.

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

Todo esto parece un poco desordenado. Estoy en lo cierto al suponer que debido a que el ng-repetición se utiliza una función, que no tiene retención del estado del objeto devuelto?

Publicado el 19/03/2020 a las 22:04
fuente por usuario
En otros idiomas...                            

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