控制器找不到解析方法

时间:2015-07-20 16:27:22

标签: angularjs routing resolve

我正在尝试从加载视图之前从API获取一些配置设置,因此我尝试使用未定义的数据时不会产生十亿次插值错误。该应用程序不会因为错误而崩溃,但我仍然需要摆脱错误。

我想我会在加载视图之前使用解析并等待配置方法解析,但是我无法将数据传输到控制器,以便我可以在那里使用它。我一直在寻找其他问题,显然这就是你应该这样做的方式。我到底做错了什么?

问题在api工厂中api.getConfig()向外部API返回$http.get请求的承诺就好了,所以我赢了'这里包括功能片段。

在我的路由中:

.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错误。为什么不能找到解决方法?

1 个答案:

答案 0 :(得分:0)

您的控制器应该在路由器中声明,否则控制器没有上下文“getConfig'来自,因此喷射器错误。



.when('/:category/top_rated', {
  templateUrl: 'views/pages/results.html',
  controller: 'MainCtrl',
  resolve: {
    'isAuth': ['fbRefs', function(fbRefs) {
      return fbRefs.getAuthObj().$requireAuth();
    }],
    'getConfig': ['api', function(api) {

      api.getConfig().then(function(data) {
        return data;
      });
    }]
  }
})