2013-07-03 17 views
10

Próbuję uzyskać zrozumienie ngResource Angular's. Zacząłem z prostego kodu wypis zaczerpnięte z dokumentacji kątowej za:

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

ale gdy jest uruchamiany kod sprawdzić konsoli JS i widzę błąd, mówiąc:

Uncaught ReferenceError: $resource is not defined

Yes, I” ve zawiera skrypt "angular-resource.js". Myślę, że pomijam coś oczywistego, ale nie mogę wywnioskować, co to jest. Proszę pomóż!

+0

Czy możesz wskazać tę część dokumentacji, skąd ją otrzymałeś? – Sprottenwels

+0

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

+0

http://docs.angularjs.org/api/ngResource.$resource tutaj, szybkie wyszukiwanie w google. 'app' musi być nazwą Twojej aplikacji, btw. –

Odpowiedz

14

Jak zasugerowano w komentarzach, należy utworzyć kontroler lub usługę korzystającą z zasobu $.

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

To wykonało zadanie. Dziwne, że wymóg dotyczący zakresu kontrolera nie jest wymieniony w dokumentacji (http://docs.angularjs.org/api/ngResource.$resource) - być może jest to zbyt oczywiste, by o nim wspomnieć - ale teraz już wiem. Dzięki! –

+2

Tak, myślę, że jest to jedna z tych rzeczy, o których nie można pominąć, chyba że dopiero zacząłeś używać kątowego, w takim przypadku naprawdę powinieneś powiedzieć! –

2

FYI okrywać pomaga każdemu, miałem ten, który nie działa. Inicjalizacja $resource właśnie zwróciła niezdefiniowaną wartość null, brak obiektu usługi zasobów.

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

Nie było błędu. Okazuje się, że z jakiegoś powodu nie można używać $resource i $http. Kiedy usunąłem $http, który był tam ze względu na to, że wcześniej korzystałem z tego api niższego poziomu, zaczęło działać. Bardzo dziwne.

Powiązane problemy