在页面加载

时间:2016-02-18 13:26:06

标签: angularjs http

我希望在Angularjs中通过$http请求从我的服务器获取数据,并且只有在promise获得resolved后才能使用ng-repeat循环数据。 我有SPA(单页应用)没有$routeProvider(只有简单的标签)。 如何在ng-repeat开始之前加载数据?

2 个答案:

答案 0 :(得分:1)

你可以使用ng-if =" items.length"在填充数据之前限制ng-repeat运行。

<div ng-if="items.length">
  <div ng-repeat="item in items">
  </div>
</div>

答案 1 :(得分:1)

我想使用ng-show会更好,因为它不会导致dom在实际获取数据时重新渲染。至于代码,它几乎与Gokul的答案相同,只需将ng-if替换为ng-show即可。

此外,不需要添加另一个变量来隐藏/显示。如果expression导致假值,则该元素将被隐藏。

---编辑---

另一种方法是通过路由器解决价值。这样,只有在解析http promise后才会加载视图。