【问题标题】:AngularJS : Dependency injection ngResourceAngularJS:依赖注入 ngResource
【发布时间】:2016-03-17 07:01:42
【问题描述】:

如果有人可以帮助我,请,

我遇到了 ngResource 的问题,我一直在寻找解决方案 2 小时,但没有找到任何东西,所以我决定提出一个问题,即使关于这个主题有类似的问题!

我正在使用 AngularJS 版本 1.4.7

我一直很好地使用服务,然后决定使用 $resource,

网络服务返回一个广告列表。

这里是 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....

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    工厂:

    return $resource($rootScope + 'commercial/findall');
    

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


    对于提供程序错误,您应该确保 ngResource 将在您的应用之前加载,当然,在 angularjs 之后加载

    【讨论】:

    • 哦,是的,我的错误,对于我按照你告诉我的那样做的提供商,现在它正在工作,只是我的网址有一些问题。非常感谢。
    【解决方案2】:

    在工厂中,您直接返回资源对象。

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

    我猜你应该将它分配给某个变量,然后返回,以便你可以使用工厂访问它。

    类似的东西..

     return {
                resourceHandle: $resource($rootScope + 'commercial/findall')
        }
    

    然后在控制器中作为

    使用
    $scope.getAll = function(){
    
        $scope.commercials = commercialFactory.resourceHandle.query();
    }
    
    $scope.init();
    

    【讨论】:

    • 它没有用,我得到一个语法错误我现在得到的错误是:错误:$resource:badcfgResponse 与配置的参数不匹配。
    • 错过了 Hitmands 上面提到的一点... $rootScope.endPoint + 'commercial/findall'。
    • 你提到的问题是关于你在资源对象上调用的方法......我想问题是你正在调用的方法......而不是查询 tryi调用get方法
    • 是的,问题出在方法上;我有点挣扎,因为我还在学习。非常感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2014-12-04
    • 2012-11-23
    • 2016-04-25
    • 1970-01-01
    • 2014-01-08
    相关资源
    最近更新 更多