使用AngularJS的未知提供者:$ resourceProvider< - $ resource

时间:2013-04-15 01:23:04

标签: javascript angularjs

我在app.js

中声明了以下内容
angular.module('adminApp', ['ngGrid','ngResource']);

在data.js

angular.module('adminApp', [])
.factory('testAccountService', function ($http) {
    var TestAccount = {
GridCtrl.js中的

angular.module('adminApp',[])
    .controller('GridCtrl', function ($scope, $http, $resource, testAccountService) {
        $scope.selectedTestAccount = null;

我正在加载我的脚本:

<script src="~/Scripts/jquery-1.9.1.min.js"></script>
<script src="~/Scripts/angular.min.js"></script>  
<script src="~/Scripts/angular-resource.min.js"></script>
<script src="~/App/admin/services/Data.js"></script>
<script src="~/App/admin/controllers/GridCtrl.js"></script>

当我运行它时,它给我一个错误说:

Error: Unknown provider: $resourceProvider <- $resource
at Error (<anonymous>)
at http://127.0.0.1:81/Scripts/angular.js:2682:15
at Object.getService [as get] (http://127.0.0.1:81/Scripts/angular.js:2810:39)
at http://127.0.0.1:81/Scripts/angular.js:2687:45

我这样做的方式有问题吗?我对如何设置服务感到困惑,但我看不出有什么问题:

3 个答案:

答案 0 :(得分:31)

$resource不属于AngularJS Core。

您必须包含: angular-resource.js


来自the docs

  

要使用$resource,请确保已包含Angular包中的angular-resource.js。您也可以在Google CDN,bower以及code.angularjs.org上找到此文件。

答案 1 :(得分:16)

在您的data.js和GridCtrl.js中,您需要从[]来电中移除angular.module('adminApp', [])

像这样:angular.module('adminApp')

另外,请确保首先加载您的app.js。

答案 2 :(得分:8)

您还需要在模块定义angular.module('adminApp',['ngResource'])

上包含角度资源模块定义'ngResource'