繁体   English   中英

AngularJS:依赖注入ngResource

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM