Jak przekazywać parametry podczas korzystania z usługi zasobów?
Bardzo trudne pytanie:
Próbuję zbudować obiekt zasobów przy użyciu metody fabrycznej:
.factory('Magazines', [function ($resource) {
var url = document.URL;
var urlArray = url.split("/");
var organId = urlArray[urlArray.length-1];
return $resource('http://localhost/ci/api/magazines/:id', {
loginID : organEntity,
password : organCommpassword,
id : organId
});
}])
Ta metoda jest łatwa, ponieważ wszystkie parametry są predefiniowane, organEntity i organCommpassword są zdefiniowane wewnątrz znacznika.
Teraz dla innego obiektu zasobów muszę przekazać parametr, gdy zostanie wywołana fabryka.
Wyobrażam sobie, że kod wywołujący tego obiektu zasobu powinien wyglądać tak:
.controller('ResrouceCtrl', function($scope, Magazines) {
$scope.magazines = Magazines.query();
});
Wiem, że metoda query () może dodawać parametry:Magazines.query(params, successcb, errorcb);
Zastanawiam się, czy po prostu przekazuję parametry, czy mogę uzyskać parametr w fabryce? Jak określić takie przekazane parametry w metodzie fabrycznej?
Na przykład, przypuśćmy teraz, że nie mogę już pobrać organizatora z adresu URL, muszę go przekazać z mojego kontrolera, jak odbierać organId w ramach metody fabrycznej?
Oto mój zasób js:
.factory('MagComments', function ($resource) {
return $resource('http://localhost/dooleystand/ci/api/magCommenct/:id', {
loginID : organEntity,
password : organCommpassword,
id : '@magId' //pass in param using @ syntax
});
})
Oto mój kontroler:
$scope.magComments = MagComments.query({magId : 1});
Próbowałem przekazać parametr, ale powoduje błąd