我遇到了一个问题,在IE中刷新AngularJS页面会显示未编译的AngularJS。我可以使用ngCloak
在加载时隐藏未编译的表达式,但是在页面卸载时找不到任何东西。我可以使用ngBind
而不是表达式,然后表达式消失而不是显示raw,但我希望有更好的解决方案。有什么想法吗?
我仍然在做一个演示,你可以在那里看到这个问题;我认为用代码片段和JSFiddle之类的东西来显示结果的iframe阻止了我复制这个问题。
发布于 2016-02-25 07:11:00
以下几个建议可能会有帮助,也可能没有帮助。
与通常的建议相反,在文档头加载角度。这样,当你在页面加载过程中点击一个ng时,浏览器就知道如何处理它。如果它在页脚,那么在页面加载之前,ng-if是没有意义的,因此元素会闪现,然后在页面加载过程中消失
使用class ..ng cloak,就像你已经在做的那样。
在控制器中使用布尔值来指定何时显示元素。例如。
<section ng-if='controller.loading === false'>
您可以将视图的部分或全部标记放在这样的div中,以便删除元素,直到它们准备好显示为止
使用ng-if ng-show和ng- hide,ng-if实际上从DOM中删除元素,而其他两个只是显示或隐藏。它们可以在页面加载的流畅性方面产生非常不同的结果。
在ng-if上使用表达式时,要小心确保表达式非常准确。不要在表达上马虎。考虑如果表达式中的var是未定义的,会发生什么。你的元素会在你不想要的时候显示吗?
虽然我还没有直接处理卸载,但是可以应用这些相同的概念。
https://stackoverflow.com/questions/35610311
复制相似问题