AngularJS每次加载路径时都会创建一个新的ng-view,然后破坏之前的ng-view,这是正常的?这只是一小部分时间,但我可以看到我的应用程序上的两个视图,并且收集元素顶部的一些指令也注意到行为(似乎编译是在从DOM中删除原始ng视图之前完成的)
有人注意到这种行为吗?
解决方法
是的,这是正常的,这允许您在视图被替换时进行转换.
从official documentation of ngView
:
enter – animation is used to bring new content into the browser. leave
– animation is used to animate existing content away.The enter and leave animation occur concurrently.
实际上,ngView并不是唯一一个行为相似的指令,例如ngRepeat的行为完全相同.
如果您想确保您的视图不重叠,可以尝试这样做.
在ng-view的元素中添加一个类,以便您可以轻松地从css中定位它,如下所示:
<div ng-view class="your-view"></div>
然后在你的CSS中这样做:
.your-view.ng-leave { display:none; }