Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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 AngularJS:依赖注入ngResource_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS:依赖注入ngResource

Javascript AngularJS:依赖注入ngResource,javascript,angularjs,Javascript,Angularjs,如果有人能帮我 我在ngResource上遇到了一个问题,我已经搜索了2个小时的解决方案,但没有找到任何结果,所以我决定提出一个问题,尽管关于这个主题有类似的问题 我使用的是AngularJS版本1.4.7 我在服务方面做得很好,然后决定使用$resource web服务返回商业广告列表 以下是app.js: var myApp = angular.module('btAngApp' , ['ngMessages','ngResource']) .run(function($rootScope)

如果有人能帮我

我在ngResource上遇到了一个问题,我已经搜索了2个小时的解决方案,但没有找到任何结果,所以我决定提出一个问题,尽管关于这个主题有类似的问题

我使用的是AngularJS版本1.4.7

我在服务方面做得很好,然后决定使用$resource

web服务返回商业广告列表

以下是app.js:

var myApp = angular.module('btAngApp' , ['ngMessages','ngResource'])
.run(function($rootScope){
    $rootScope.endPoint = "http://localhost:8082/serverprject/rest/";
});
工厂:

myApp.factory('commercialFactory', function($rootScope, $resource){
    return $resource($rootScope + 'commercial/findall');
});
控制员:

myApp.controller('editComCtrl', function($scope, $filter, $http, commercialFactory) {
$scope.init = function(){
    $scope.getAll();
};

$scope.getAll = function(){
    $scope.commercials = commercialFactory.query();
}

$scope.init();
我在上面控制器代码后面的另一个代码中使用了$http和$filter,我没有复制到这里

我已经在index.html和 下载angular-resource.min.js

我尝试过许多场景,但都出现了相同的错误(将控制器和工厂放在同一个文件中,将工厂代码放在控制器中,…) 如果我没有在angular.module中注入ngResource,则会出现以下错误:

错误:[$injector:unpr]$injector/unpr?p0=%24resourceProvider%20%3C-%20%24resource%20%3C-%20editComCtrl

如果我这样做了,我会得到:

错误:[$injector:modulerr]$injector/modulerr?p0=btAngApp&p1=%5B%24inj

工厂:

也许应该是:
$rootScope.endPoint+'commercial/findall'



相反,对于提供者错误,您应该确保ngResource将在应用程序之前加载,当然,在工厂中angularjs之后,您将直接返回资源对象

在工厂中,您应该有一些方法或变量,您可以使用工厂访问它们

我想您应该将它分配给某个变量,然后返回,这样您就可以使用工厂访问它

像这样的

 return {
            resourceHandle: $resource($rootScope + 'commercial/findall')
    }
然后在控制器中使用它作为

$scope.getAll = function(){

    $scope.commercials = commercialFactory.resourceHandle.query();
}

$scope.init();

哦,是的,我错了,对于我按照你告诉我的那样做的提供商,现在它正在工作,只是我的url有一些小问题。非常感谢。它不起作用,我得到了一个语法错误我现在得到的错误是:错误:$resource:badcfgResponse与配置的参数不匹配。错过了Hitmands上面提到的一点$rootScope.endPoint+'commercial/findall'。您提到的问题是关于您在Resource对象上调用的方法……我想问题是您正在调用的方法。。。问题不在于query tryi调用get methodYes,而在于方法;我有点犹豫,因为我还在学习。非常感谢你的帮助
$scope.getAll = function(){

    $scope.commercials = commercialFactory.resourceHandle.query();
}

$scope.init();