У меня есть блок флажков на качестве нг-повторе, однако вместо нг-повтор, являющегося объект сферы прямым, то на функции, которая выравнивается массив многоуровневого, который находится в области видимости называется $ 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>
Угловая функция управления:
$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;
}
Дисплей и взаимодействие работает нормально. Но теперь я пытаюсь сделать функцию, которая deslects всех элементов. Я пытаюсь сделать это путем обновления модели $ scope.customReportsCtrl.districts. Но это не имеет никакого влияния на HTML.
function resetDistrictSelections() {
angular.forEach($scope.customReportsCtrl.districts, function(districtDetail, districtKey) {
districtDetail.checked = false;
angular.forEach(districtDetail.subDistricts, function(subDistrictDetail, subDistrictKey) {
subDistrictDetail.checked = false;
});
});
}
Все это кажется немного неаккуратно. Я прав в предположении, что, поскольку нг повтора использует функцию, он не имеет удержание состояния возвращаемого объекта?