我有一个开关可以改变一个名为 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
编辑:如果我没有指令但在我在其中使用指令时重新初始化了我的作用域,ng-switch 不会改变作用域。虽然我还没有完全理解为什么我放弃了 ng-switch 并改用了 ng-show 。