我有一个AngularJS应用程序,在.run函数中,我从服务器获取我的网站设置并将它们添加到根范围。
<!DOCTYPE html>
<html>
<body>
<img src="http://i.stack.imgur.com/MA0ZA.png">
</body>
</html>
我需要在其他控制器中访问这些设置。在其他控制器开始加载之前,我怎么能等待它准备就绪?
仅供参考,这是资源服务:
.run(function ($rootScope, SettingResource) {
// Get the site settings (could be done in app controller?)
$rootScope.SiteSettings = SettingResource.get();
});
答案 0 :(得分:0)
好像你应该可以在这里使用$ 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那样返回promises。请查看此答案以了解我认为类似情况的更多详情:Angular Resource calls and $q
答案 1 :(得分:0)
我猜目前有角度并不支持一种简单的方法, 你可以在这里找到一个讨论: