2013-07-03 184 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,因此它開始工作。很奇怪。