【问题标题】:Unknown provider: $resourceProvider - AngularJS未知提供者:$resourceProvider - AngularJS
【发布时间】:2014-12-25 18:20:10
【问题描述】:

在我的 angularjs 应用程序上收到以下消息:

Error: [$injector:unpr] Unknown provider: $resourceProvider <- $resource <- Item
http://errors.angularjs.org/1.3.8/$injector/unpr?p0=%24resourceProvider%20%3C-%20%24resource%20%3C-%20Item
    at http://localhost:49717/Scripts/angular.js:63:12
    at http://localhost:49717/Scripts/angular.js:3994:19
    at Object.getService [as get] (http://localhost:49717/Scripts/angular.js:4141:39)
    at http://localhost:49717/Scripts/angular.js:3999:45
    at getService (http://localhost:49717/Scripts/angular.js:4141:39)
    at Object.invoke (http://localhost:49717/Scripts/angular.js:4173:13)
    at Object.enforcedReturnValue [as $get] (http://localhost:49717/Scripts/angular.js:4035:37)
    at Object.invoke (http://localhost:49717/Scripts/angular.js:4182:17)
    at http://localhost:49717/Scripts/angular.js:4000:37
    at getService (http://localhost:49717/Scripts/angular.js:4141:39) <div ng-view="" class="ng-scope">

我的 app.js

'use strict';

var SalesApp = angular.module('SalesApp', ['ngRoute']).
     config(['$routeProvider', function ($routeProvider) {
        $routeProvider.
            when('/', { controller: ItemCtrl, templateUrl: 'item.html' }).
            otherwise({ redirectTo: '/' });
     }]);

SalesApp.factory('Item', function ($resource) {
    return $resource('/api/Item/:iid', { iid: '@iid' }, { update: { method: 'PUT' } });
});

var ItemCtrl = function ($scope, $location, Item) {
    $scope.items = Item.query();
};

我加载的脚本

<script src="Scripts/jquery-1.9.1.js"></script>
    <script src="Scripts/angular.js"></script>
    <script src="Scripts/angular-resource.js"></script>
    <script src="Scripts/app.js"></script>
    <script src="Scripts/angular-resource.js"></script>
    <script src="Scripts/angular-sanitize.js"></script>
    <script src="Scripts/angular-animate.js"></script>
    <script src="Scripts/angular-touch.js"></script>
    <script src="Scripts/angular-route.js"></script>

无法弄清楚可能出了什么问题?为了简单起见,我将 ItemCtrl 保留在 app.js 文件中,不知道我该怎么做?

【问题讨论】:

  • 你已经包含了两次 ng-resource

标签: javascript angularjs


【解决方案1】:

您需要将其列为依赖项,因为 $resource 服务没有与主 Angular 脚本捆绑在一起。将它包含在您的 HTML 页面中后,可以像这样包含它:

 var SalesApp = angular.module('SalesApp', ['ngRoute','ngResource']).

【讨论】:

  • 非常感谢,成功了!队友的欢呼声! :)
  • @btmach 很高兴,您可以接受它作为答案,这样它也可以帮助其他人:)
  • 伙计,我花了 3 天时间试图弄清楚为什么我的应用程序运行良好,但我无法在单元测试中注入我的资源。这就是解决方案。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多