2015-07-20 36 views
0

我想在加载我的视图之前从API获取一些配置设置,所以我没有从尝试使用未定义的数据中得到十亿个插值错误。该应用程序不会因为错误而崩溃,但我需要摆脱无谓的错误。控制器没有找到解决方法

我想我会使用一个决心,并等待配置方法解决之前加载视图,但我无法获取数据到我的控制器,以便我可以在那里使用它。我一直在看其他问题,显然这是你应该这样做的方式..我究竟做错了什么?

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

在我的路由:

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

+0

你能不能绑定控制器时声明?控制器:'MainCtrl',解决/ * ... */ – cyan

+0

@cyan我的模板使用另一个控制器,所以我无法做到这一点。无论如何,我仍然尝试过,但仍然得到相同的错误。 – Chrillewoodz

+0

某些依赖注入问题 – cyan

回答

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; 
 
     }); 
 
    }] 
 
    } 
 
})