angularjs $ Rest Resource Exemplo

$ Recursos foi destinado a recuperar datos dun extremo, manipular e enviar de novo. Tes algúns dos que hai, pero non estás aproveitando o que se fixo que facer.
É óptimo ter métodos personalizados no teu recurso, pero non queres perder características interesantes é que vén con OOTB.
Editar: Creo que non me explicou ben como o orixinal, pero $ recurso dalgunhas cousas divertidas con retorno. All.Get () e All.Query () Devolve o obxecto de recurso e transfírao ao devolución de devolución cando está completo. Fai algunhas cousas de fantasía coas promesas detrás das escenas que significa que podes chamar $ Save () antes de que o Get () de devolución de chamada realmente dispara e que esperará. Probablemente sexa a mellor forma de xestionar os seus recursos dentro dunha promesa () ou o método de devolución de chamada.

Norma de uso

var Todo = $resource('/api/1/todo/:id');//create a todovar todo1 = new Todo();todo1.foo = 'bar';todo1.something = 123;todo1.$save();//get and update a todovar todo2 = Todo.get({id: 123});todo2.foo += '!';todo2.$save();//which is basically the same as...Todo.get({id: 123}, function(todo) { todo.foo += '!'; todo.$save();});//get a list of todosTodo.query(function(todos) { //do something with todos angular.forEach(todos, function(todo) { todo.foo += ' something'; todo.$save(); });});//delete a todoTodo.$delete({id: 123});

Do mesmo xeito, no caso de que o que publicou no OP, podería obter un obxecto de recurso e, a continuación, chamar a calquera das súas funcións personalizadas (en teoría):

var something = src.GetTodo({id: 123});something.foo = 'hi there';something.UpdateTodo();

Gustaríame experimentar coa aplicación OOTB antes de que saín e o meu propio foi inventado con todo. E se cre que non está a usar ningunha das características predeterminadas de $ Recursos, probablemente debería usar $ HTTP no que é o seu propio.

Actualización: angular 1.2 e promesas

Como angular, 1.2, promesa de apoio recursos. Pero non cambie o resto do comportamento.
Para aproveitar as promesas $resource, ten que usar o $promise do propiedade do valor devolto.

Exemplo de uso das promesas

var Todo = $resource('/api/1/todo/:id');Todo.get({id: 123}).$promise.then(function(todo) { // success $scope.todos = todos;}, function(errResponse) { // fail});Todo.query().$promise.then(function(todos) { // success $scope.todos = todos;}, function(errResponse) { // fail});

Só ten que ter en conta que a promesa de $ propiedade é unha propiedade en os mesmos valores que volvían. Pode ser tan estraño:

estes son equivalentes

var todo = Todo.get({id: 123}, function() { $scope.todo = todo;});Todo.get({id: 123}, function(todo) { $scope.todo = todo;});Todo.get({id: 123}).$promise.then(function(todo) { $scope.todo = todo;});var todo = Todo.get({id: 123});todo.$promise.then(function() { $scope.todo = todo;});

Deixa unha resposta

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *