Ниже приведен простой пример моей проблемы, которая, похоже, была создана модулем AngularJS "checklist-model".Когда я устанавливаю свой oData = undefined, он должен скрывать div с помощью ng-show, но по какой-то странной причине требуется два нажатия кнопки, чтобы установить oData.Свойство oData.counties, хотя и не определено после первого нажатия кнопки, все еще остается до второго нажатия кнопки.Я предполагаю, что это связано с контрольным списком, имеющим локальную копию oData.counties в своей области, но это только предположение.И я могу только предположить, что есть хитрость, чтобы выпустить его с первой попытки.Любая помощь будет очень кстати.
Plunker теперь работает, спасибо Лекс ... это: myPlunker
Пример HTML
<div ng-controller="TestController as TestController">
<button ng-model="showHide" ng-click="TestController.pause()">TEST</button>
<div ng-show="TestController.oData">
<div ng-repeat="county in Counties">
<input type="checkbox"
checklist-model="TestController.oData.counties"
checklist-value="county.countyno" />
{{county.countyno}} {{county.countyname}}
</div>
</div>
</div>
ПримерКонтроллер:
'use strict';
app.controller('TestController', ['$scope', function ($scope) {
var _this = this; // the controller
_this.name = "TestController";
_this.oData = {
"name": "harvey mushman",
"counties": ["19", "21"]
};
$scope.Counties = [
{ countyname: "Lassen", countyno: 18 },
{ countyname: "Los Angeles", countyno: 19 },
{ countyname: "Madera", countyno: 20 },
{ countyname: "Marin", countyno: 21 }
]
this.pause = function () {
// debugger;
console.log(_this.oData);
_this.oData = undefined;
console.log(_this.oData);
};
}]);