【发布时间】:2015-10-09 21:05:21
【问题描述】:
我试图在加载视图之前从 API 获取一些配置设置,这样我就不会因为尝试使用未定义的数据而出现十亿个插值错误。该应用程序不会因为错误而崩溃,但我仍然需要摆脱错误。
我想在加载视图之前我会使用解析并等待配置方法解析,但我无法将数据获取到我的控制器,以便我可以在那里使用它。我一直在研究其他问题,显然这是你应该这样做的方式。我到底做错了什么?
问题是在api 工厂中不是,api.getConfig() 将$http.get 请求的承诺返回到外部 API 就好了,所以我不会包含函数 sn-在这里。
在我的路由中:
.when('/:category/top_rated', {
templateUrl: 'views/pages/results.html',
resolve: {
'isAuth': ['fbRefs', function(fbRefs) {
return fbRefs.getAuthObj().$requireAuth();
}],
'getConfig': ['api', function(api) {
api.getConfig().then(function(data) {
return data;
});
}]
}
})
然后在我的控制器中我像这样注入它:
core.controller('MainCtrl', ['getConfig', function(getConfig) {
getConfig.then(function(data) {
console.log(data);
});
}]);
但是,这会引发 $injector:unpr 错误。为什么找不到resolve方法?
【问题讨论】:
-
你能把控制器绑定到when语句吗?控制器:'MainCtrl',resolve /* ... */
-
@cyan 我的模板使用了另一个控制器,所以我无法这样做。无论如何我都试过了,但仍然出现同样的错误。
-
存在依赖注入问题
-
控制器在哪里声明?似乎没有在需要的路由中声明
-
@charlietfl 它位于我的 html 标签上。我也尝试过在控制器中声明,但什么也没做。