Javascript 在$routeProvider解析功能中找不到AngularJS声明的服务
我的主JS中有以下AngularJS代码(LoginData是一个全局值,Config是一个工厂实例): 再往下,我宣布了我的路线:Javascript 在$routeProvider解析功能中找不到AngularJS声明的服务,javascript,angularjs,Javascript,Angularjs,我的主JS中有以下AngularJS代码(LoginData是一个全局值,Config是一个工厂实例): 再往下,我宣布了我的路线: app.config(function ($routeProvider) { ... $routeProvider.when('/portfolio', {templateUrl: "http://xxxxx/~matthew/view/portfolio.view", resolve: { portfolio: portfolioData.loa
app.config(function ($routeProvider) {
...
$routeProvider.when('/portfolio', {templateUrl: "http://xxxxx/~matthew/view/portfolio.view", resolve: { portfolio: portfolioData.load( $http, LoginData, Config ) }});
});
出于某种原因,AngularJS找不到portfolioData服务,因此不会运行该应用程序
我试着用工厂来代替。
如果我内联$http调用,这似乎是可行的,但我不想内联这段代码,因为这段代码很重要,我希望在其他地方重用它
首先,您无需将服务作为函数加载的参数传递:
load: function() {
return $http({...}).then...
}
然后,我认为resolve的投资组合属性需要如下函数:
resolve: {
portfolio: function(portfolioData) {
return portfolioData.load();
}
}
或解决:
resolve: {
portfolio: function(portfolioData) {
return portfolioData.load().then(function (data) {
return data;
});
}
}
首先,您无需将服务作为函数加载的参数传递:
load: function() {
return $http({...}).then...
}
然后,我认为resolve的投资组合属性需要如下函数:
resolve: {
portfolio: function(portfolioData) {
return portfolioData.load();
}
}
或解决:
resolve: {
portfolio: function(portfolioData) {
return portfolioData.load().then(function (data) {
return data;
});
}
}
您是否在配置之前加载了服务脚本?如果没有,请执行此操作。在配置之前是否加载了服务脚本?如果不这样做。那就成功了!谢谢我现在在控制器端遇到另一个错误,但我将把它作为一个单独的问题发布。:)成功了!谢谢我现在在控制器端遇到另一个错误,但我将把它作为一个单独的问题发布。:)