Pri*_*osK 6 javascript angularjs
引用其中一条关于ngCloak指令的评论(AngularJS文档):
它只在你的"index.html"页面上真正需要,因为浏览器可能会在Angular有机会解析/编译之前尝试渲染.在运行时,当Angular由于ng-view,ng-include等引入内容时,它将在浏览器呈现之前由Angular处理.
我在jsFiddle中创建了一个示例来验证这一点,令我惊讶的是,表达式在浏览器中呈现之前未进行评估.我希望模板首先被编译和链接,然后附加到DOM - 事实并非如此.
这是否意味着每个{{expression}}内部模板也应该被包裹ngCloak以防止闪烁或者我错过了什么?
我的猜测是,警报允许浏览器在 Angular 完成其工作之前进行渲染,添加一个延迟为 0 的 setTimeout 显示渲染的模板:
http://jsfiddle.net/g/FLZZR/5/
function TemplateController ($scope) {
$scope.expression = "This should already be rendered...";
setTimeout(function(){
alert("... but it isn't.");
});
}
Run Code Online (Sandbox Code Playgroud)
附加说明:您不能期望模板在您放置警报时呈现,最多它会被隐藏,角度使用脏检查来发挥其魔力,您必须让它“消化”您的更改以便它们显示在 DOM 中。
| 归档时间: |
|
| 查看次数: |
3188 次 |
| 最近记录: |