У меня есть переключатель, который изменяет значение переменной с именем p.
<div ng-switch on="p">
<div ng-switch-when="true">
/*...show nodes and ability to add node*/
</div>
<div ng-switch-when="false">
/*for now show nothing*/
</div>
</div>
В моем контроллере:
$scope.nodes=[{node1},{node2},{node3}];
function to add a node
$scope.$watch('nodes', function(nodes) {
console.log(nodes);
console.log("================");
},true);
ПРОБЛЕМА: когда я печатаю узлы $scope выше, отображаются все новые узлы. Если я выключаю и включаю (p=false, а затем p=true), у меня есть начальные $scope.nodes. С какой стати мои узлы сбрасываются при переключении? См. этот пример: plunker
EDIT: ng-switch работал без изменения области действия, если у меня не было директивы, но я повторно инициализировал свою область действия, когда использовал внутри нее директиву. Хотя я точно не понял, почему я отказался от ng-switch и вместо этого использовал ng-show.
$scope.p
, но смотрите$scope.nodes
. Когда вы меняете$scope.p
? - person michelem   schedule 19.06.2015