Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ng开关时间:是否每次重新创建新控制器,并在选择不同步骤时删除以前的数据?_Javascript_Performance_Angularjs_Ng Switch - Fatal编程技术网

Javascript ng开关时间:是否每次重新创建新控制器,并在选择不同步骤时删除以前的数据?

Javascript ng开关时间:是否每次重新创建新控制器,并在选择不同步骤时删除以前的数据?,javascript,performance,angularjs,ng-switch,Javascript,Performance,Angularjs,Ng Switch,我有一个基于angular.js的单页webapp,似乎有性能问题。 我有它的主控制器和视图,看起来像这样 <div> <div data-ng-switch-when="step1"> <div data-ng-include="'/partials/step1.html'"></div> </div> <div data-ng-switch-when="step2"> <div data-ng-in

我有一个基于angular.js的单页webapp,似乎有性能问题。 我有它的主控制器和视图,看起来像这样

<div>
 <div data-ng-switch-when="step1">
  <div data-ng-include="'/partials/step1.html'"></div>
 </div>

 <div data-ng-switch-when="step2">
  <div data-ng-include="'/partials/step2.html'"></div>
 </div>
</div>

对于每个步骤,我都有自己的控制器,在我们的例子中是
step1 ctl
step2 ctl


所以我的问题是:当我选择step2时,angular是否会解除step1中所有元素的绑定,移除手表并清理资源?第二个问题——当我在两个步骤之间切换时,angular是否每次都创建新的控制器实例、添加回调、绑定等

不确定“AngularJS是否从步骤1中解除所有元素的绑定”的确切含义,但AngularJS将要做的是销毁由
ngSwitch
指令创建的作用域(及其子项,从而销毁在步骤1中创建的所有手表),并删除相应的DOM元素。如果您没有使用任何可能泄漏
step1.html
AngularJS中资源的写得不好的指令,那么AngularJS应该清理DOM元素和相应的手表


第二个问题的答案是肯定的。

是否可以使其重用已启动的组件?