[英]AngularJS : Dependency injection ngResource
如果有人可以帮助我,
我在使用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] http://errors.angularjs.org/1.4.7/ $ injector / unpr?p0 =%24resourceProvider%20%3C-%20%24resource%20%3C-%20editComCtrl
如果我明白了:
错误:[$ injector:modulerr] http://errors.angularjs.org/1.4.7/ $ injector / modulerr?p0 = btAngApp&p1 =%5B%24inj ....
该工厂 :
return $resource($rootScope + 'commercial/findall');
也许应该是: $rootScope.endPoint + 'commercial/findall'
对于提供程序错误,您应该确保在应用程序之前(当然,在angularjs之后)加载ngResource。
在工厂中,您将直接返回资源对象。
在工厂中,您应该具有一些方法或变量,您可以使用工厂来访问它
我猜您应该将其分配给某个变量,然后返回,以便可以使用工厂访问它。
像这样
return {
resourceHandle: $resource($rootScope + 'commercial/findall')
}
然后在控制器中将其用作
$scope.getAll = function(){
$scope.commercials = commercialFactory.resourceHandle.query();
}
$scope.init();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.