Javascript ng开关时间:是否每次重新创建新控制器,并在选择不同步骤时删除以前的数据?
我有一个基于angular.js的单页webapp,似乎有性能问题。 我有它的主控制器和视图,看起来像这样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
<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元素和相应的手表
第二个问题的答案是肯定的。是否可以使其重用已启动的组件?