Javascript AngularJS:依赖注入ngResource
如果有人能帮我 我在ngResource上遇到了一个问题,我已经搜索了2个小时的解决方案,但没有找到任何结果,所以我决定提出一个问题,尽管关于这个主题有类似的问题 我使用的是AngularJS版本1.4.7 我在服务方面做得很好,然后决定使用$resource web服务返回商业广告列表 以下是app.js: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)
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();