当要加载大量图像/脚本时,在IE中似乎主要是一个问题,可能会有很多时间{{stringExpression}}
显示标记中的文字,然后一旦对它的编译/内插完成了角度操作,它们就会消失文件。
是否有常见的原因导致发生这种情况,这表明我做错了什么,还是有已知的方法来防止这种情况发生?
当要加载大量图像/脚本时,在IE中似乎主要是一个问题,可能会有很多时间{{stringExpression}}
显示标记中的文字,然后一旦对它的编译/内插完成了角度操作,它们就会消失文件。
是否有常见的原因导致发生这种情况,这表明我做错了什么,还是有已知的方法来防止这种情况发生?
Answers:
我认为您正在寻找ngCloak
指令:https : //docs.angularjs.org/api/ng/directive/ngCloak
从文档中:
ngCloak指令用于防止Angular html模板在加载应用程序时被浏览器以其原始(未编译)形式短暂显示。使用此伪指令可避免由html模板显示引起的不希望的闪烁效果。
该指令可以应用于
<body>
元素,但是首选用法是将多个ngCloak
指令应用于页面的一小部分,以允许逐步呈现浏览器视图
ngCloak
广泛/最佳实践吗?似乎没什么问题,但是我对AngularJS没有经验。
<head>
您的html部分加载angularjs脚本ngCloak
才能生效。
angular.js
在<head>
页面的部分中加载,我可以确认它可以正常工作。
另外,您可以使用<span ng-bind="hello"></span>
代替{{hello}}
。
为了提高最后一次加载脚本时class ='ng-cloak'方法的有效性,请确保在文档的开头加载以下CSS:
.ng-cloak { display:none; }
visibility: hidden
更好吗?
!important
CSS hack(不好的东西)是要促进一种样式的选择,对吗?它违反了CSS选择器规则。
只需将隐藏的CSS添加到页面顶部或您的CSS文件之一即可:
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak, .ng-hide {
display: none !important;
}
然后,您可以按照正常的Angular惯例使用ngCloak指令,并且即使在Angular本身加载之前,它也可以工作。
这正是Angular所做的:angular.js末尾的代码将上述CSS规则添加到页面的顶部。
[ngcloak]
选择器,但这更加完整。
在您的CSS中添加以下内容
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
display: none !important;
}
然后在您的代码中可以添加ng-cloak指令。例如,
<div ng-cloak>
Welcome {{data.name}}
</div>
而已!
您也可以使用 ng-attr-src="{{variable}}"
代替src="{{variable}}"
和属性,只有在编译器编译模板后,才会生成该属性。在文档中对此进行了提及:https : //docs.angularjs.org/guide/directive#-ngattr-attribute-bindings