Angularjs类型错误:无法读取属性' GET()'未定义的

时间:2015-03-18 12:24:58

标签: javascript angularjs angular-resource

在下面的代码中,我得到一个类型错误 Type error:Cannot read property 'GET()' of undefined在这里做错了什么

服务

MyApp.factory('Myops', function($resource) {
    return $resource('/projects/:ID/releases/', {
        ID: "@ID"
    }, {
        "update": {
            method: "PUT"
        },
        "create": {
            method: "POST"
        },
        "get": {
            method: "GET"
        }
    });
});

控制器

MyApp.controller("psCtrls", ['$scope', 'Myops', function($scope, Myops) {
    myops = Myops.GET()
    console.log(myops);

}]);

更新1:

包含My ops后,这是错误

 Error:[$injector:unpr ] Unknown provider :$resource provider<-$resource<-Myops

3 个答案:

答案 0 :(得分:3)

Myops依赖未正确注入

MyApp.controller("psCtrls",['$scope', 'Myops', function($scope,Myops){

}]);

更新1:

包括angular-resource.js

然后在您的应用中包含所需的依赖项,以便使用$resource服务

var app = angular.module('myApp',['ngResouce']);

更新2

您的资源来电应该是.get而不是.GET()

Myops.get().then(function(data){
   console.log(data);
})

答案 1 :(得分:2)

您需要将Myops服务包括在内:

MyApp.controller("psCtrls",['$scope', 'Myops',function($scope,Myops)
{
    myops = Myops.GET()
     console.log(myops);
}]);

根据您更新的问题:您的应用程序中似乎没有包含ngResource,而AngularJs并未附带此问题。因此,您需要手动包含它:

<script src="angular-resource.js">

使用:

  • Google CDN 例如//ajax.googleapis.com/ajax/libs/angularjs/X.Y.Z/angular-resource.js
  • 鲍尔 bower install angular-resource

然后,将其注入您的应用中:

angular.module('app', ['ngResource']);

答案 2 :(得分:1)

Myops没有被注射。将其更改为

...
MyApp.controller("psCtrls",['$scope', 'Myops', function($scope,Myops)
...