13

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

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

这是一个简化的演示

4

2 回答 2

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

于 2013-04-09T17:39:44.257 回答
0

对我来说,这不仅仅是 UI 闪烁的问题。因为在渲染之前没有加载数据,所以我的引导选择没有选择关联的数据值。我能够通过在包装下拉选择的容器中放置一个“ng-if”来解决问题,如下所示:

<div class='bootstrap-select-dropdown-wrapper' ng-if='listofthings.length > 0'>...</div>

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

于 2016-06-03T23:07:42.940 回答