AngularJS在.run中等待Resource
AngularJS wait for Resource in .run
我有一个AngularJS应用程序,在.run函数中,我从服务器获取站点设置,并将它们添加到根作用域。
.run(function ($rootScope, SettingResource) {
// Get the site settings (could be done in app controller?)
$rootScope.SiteSettings = SettingResource.get();
});
我需要访问其他控制器中的这些设置。在其他控制器开始加载之前,我如何等待它准备就绪?
仅供参考,这里是资源服务:
function settingFactory($resource) {
return $resource('/api/settings', {id: '@id'}, {'update': {'method': 'PUT'}});
}
看起来你应该可以在这里使用$q.all,尽管我自己从未尝试过。
类似于:
.run(function ($rootScope, SettingResource) {
$q.all(SettingResource.get().then(function(data) {
rootScope.SiteSettings = data;
console.log("ok, I'm done here.")
});
});
并不是说,如果SettingsResource基于$resource,它不会像直接调用$http.get那样返回promise。查看这个答案,我认为这是一个类似的场景,并提供更多细节:Angular Resource调用和$q
我想目前angular不支持简单的方法,你可以在这里找到一个讨论:
https://github.com/angular/angular.js/issues/4003
相关文章:
- 单击按钮以等待单击按钮
- React组件等待所需道具进行渲染
- 正在等待呈现图表,直到加载数据为止
- 在等待ajax请求时显示微调器并禁用页面
- Javascript在for循环中等待处理请求
- JavaScript循环并等待函数
- 在等待异步任务时永久循环
- 在通过child.print()打印之前,我如何等待图像加载到我的新窗口中
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- 等待300毫秒,然后使用jQuery向下滑动菜单
- 可以't通过Angular$resource POST数据
- 等待循环调用的所有承诺完成
- 等待回调函数执行
- RxJS等待承诺解决
- AngularJS在.run中等待Resource
- 使用$resource时,量角器等待与页面同步超时
- $save().then 在 Angular 上$resource不等待服务响应
- 在服务中等待 Angular JS(REST -> $resource)
- AngularJS在用户点击范围内等待$resource承诺
- AngularJS等待$resource响应来设置值