AngularJS:api返回数据后重新加载模板

时间:2014-12-29 09:53:31

标签: angularjs angular-ui-router

当我的应用初始化时,对api的调用发生了:

.run(function($ionicPlatform, $http, $localstorage, $model) {
  $http.get($model.apiurl).success(function(data) {
    $localstorage.setObject('data', data);
    // reload template here!
  });
})

当api调用成功并设置了localstorage对象时,我想重新加载我的模板(tab-categories.html),以便显示数据。我该怎么做,ngRoute,stateProvider,......?

2 个答案:

答案 0 :(得分:1)

如果你问这个问题,你可能会错过角度点。如果模板具有绑定到模型的值,则更改这些值将自动更新下一个摘要的视图。您的异步代码(请求)可能不会触发摘要,在这种情况下,您必须手动执行此操作。有很多方法可以做到:digest and apply

一种简单的方法是注入$ timeout,并使用传入的函数体中的敏感代码执行零持续时间超时(无时间参数)

编辑:所以要更直接地回答你的问题,你应该在调用成功时将数据存储在应用程序的某个地方,然后依靠angularjs摘要循环来更新你的视图。这是角度大工作节省功能之一。

答案 1 :(得分:0)

使用$route.reload();方法在成功完成事务后重新加载整个页面,请确保在Controller中添加依赖注入'$route'