在从外部源加载某些数据之前,如何推迟视图渲染?

时间:2013-04-09 05:30:59

标签: angularjs angularjs-scope

我的应用需要在初始化时从外部源将一些数据加载到$rootScope。由于数据来自外部源,因此无法保证加载数据所需的时间。我想推迟视图的渲染,直到成功加载数据。有没有办法实现这个目标?

请注意,我没有为此应用使用Angular路由。

这是simplified demo

2 个答案:

答案 0 :(得分:14)

在不使用路由解析的情况下,在异步操作完成之前,没有一种干净的方法可以阻止视图呈现,但您可以编写自定义指令来执行相同的工作。

但是,如果这是严格的用户体验,那么使用ngShow可以游泳:

<div ng-show="user.name">
  <!-- content won't be visible until data is set -->
</div>

这是一个更新的Plunker:http://plnkr.co/edit/MXoQNWHvyp9aOXg0QOoC?p=preview

答案 1 :(得分:0)

对我来说,这不仅仅是UI闪烁的问题。由于数据在呈现之前未加载,因此我的引导选择不是选择关联的数据值。我能够通过在包装下拉列表选项的容器中放置“ng-if”来解决问题,如下所示:

CMT

希望这可以帮助那些遇到类似问题的人(注意:我还将nya-bootstrap-select模块合并到我的项目中 - bower install nya-bootstrap-select)