Como passar parâmetros quando usar o serviço de recursos?
Uma pergunta muito rookie-ish:
Eu estou tentando construir o objeto de recurso usando o método de fábrica:
.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
});
}])
Esse método é fácil porque todos os parâmetros são predefinidos, organEntity e organCommpassword são definidos dentro da tag.
Agora, para um objeto de recurso diferente, preciso passar o parâmetro quando a fábrica for chamada.
Eu imagino que o código de chamada deste objeto de recurso deve ser semelhante:
.controller('ResrouceCtrl', function($scope, Magazines) {
$scope.magazines = Magazines.query();
});
Eu sei que o método query () pode adicionar parâmetros:Magazines.query(params, successcb, errorcb);
Gostaria de saber se apenas passo parâmetros, posso obter o parâmetro na fábrica? Como especificar esses parâmetros passados no método de fábrica?
Por exemplo, suponha que eu não consiga mais obter o organId do url, preciso passá-lo do meu controlador, como receber o organId dentro do método de fábrica?
Aqui está o meu recurso 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
});
})
Aqui está meu controlador:
$scope.magComments = MagComments.query({magId : 1});
Eu tentei passar no parâmetro, mas isso causa um erro