2013-07-03 137 views
10

我想要了解Angular的ngResource。我已经开始与角的文档将一个简单的代码摘录:

angular.module("app", ['ngResource']) 
var user = $resource("/REST/user/:id", {userID:'@id'}); 

但运行代码当我检查JS控制台,我看到一个错误说:

Uncaught ReferenceError: $resource is not defined

是的,我已经包含了'angular-resource.js'脚本。我想我忽略了一些明显的东西,但我不能推断它是什么。请帮忙!

+0

你能指出从哪里得到这个文件的一部分? – Sprottenwels

+0

@Sprottenwels http://docs.angularjs.org/api/ngResource.$resource –

+0

http://docs.angularjs.org/api/ngResource.$resource here,在Google上快速搜索。 'app'必须是你的应用程序名称,顺便说一句。 –

回答

14

正如评论中所建议的,您需要创建一个使用$资源的控制器或服务。

Here is an example

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

app.controller('MainCtrl', function($scope, $resource) { 
    var dataService = $resource('http://run.plnkr.co/5NYWROuqUDQOGcKq/test.json'); 
    $scope.data = dataService.get(); 
}); 
+0

这样做的工作。奇怪的是,在文档中没有提到对控制器作用域的要求(http://docs.angularjs.org/api/ngResource.$resource) - 也许这太明显了,但现在我知道了。谢谢! –

+2

是的,我认为这是两个显而易见的事情之一..除非你刚刚开始使用角度,在这种情况下,它应该说! –

2

仅供参考柜面它可以帮助任何人,我有这个这是行不通的。 $resource初始化只是返回undefined null,没有资源服务对象。

myConstrollers.controller('ConsumerListController',['$scope', '$http','$resource','ConsumerService',function($scope, $http,$resource, ConsumerService) { 
    $scope.consumers=ConsumerService.query(); 
    }]); 

没有错误。原因出于某种原因,你不能使用$resource$http我想。一旦我删除$http,因为我之前使用了较低级别的API,因此它开始工作。很奇怪。