ng-switch-when:它是否每次重新创建新控制器并在选择不同步骤时删除以前的数据



我有一个基于角度的单页网络应用程序.js 似乎我有性能问题。所以我有主控制器和视图,看起来像这样

<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-ctlstep2-ctl

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

不确定"angular 是否解除了步骤1中的所有元素"的确切含义,但是AngularJS要做的是销毁由ngSwitch指令创建的范围(及其子项,从而破坏在step1中创建的任何监视)并删除相应的DOM元素。如果你没有使用任何可能泄漏step1.html资源的糟糕指令,AngularJS应该清理DOM元素和相应的手表。

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

相关内容

  • 没有找到相关文章

最新更新