Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在$routeProvider解析功能中找不到AngularJS声明的服务_Javascript_Angularjs - Fatal编程技术网

Javascript 在$routeProvider解析功能中找不到AngularJS声明的服务

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

我的主JS中有以下AngularJS代码(LoginData是一个全局值,Config是一个工厂实例):

再往下,我宣布了我的路线:

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

您是否在配置之前加载了服务脚本?如果没有,请执行此操作。

在配置之前是否加载了服务脚本?如果不这样做。

那就成功了!谢谢我现在在控制器端遇到另一个错误,但我将把它作为一个单独的问题发布。:)成功了!谢谢我现在在控制器端遇到另一个错误,但我将把它作为一个单独的问题发布。:)