Angularjs $ Resursa de odihnă Exemplul

$ Resursa a fost destinată recuperării datelor de la un capăt, manipulați și trimiteți din nou. Aveți unele dintre aceștia, dar nu beneficiați de ceea ce sa făcut pentru a face.
Este minunat să aveți metode personalizate în resursa dvs., dar nu doriți să pierdeți caracteristici interesante este că vine cu asta Ootb.
Editați: Cred că nu m-am explicat bine ca fiind originalul, dar $ Resursa de lucruri amuzante cu întoarcerea. All.get () și All.Query () Întoarceți obiectul de resurse și transferați-l la apel invers atunci când este completă. Face unele lucruri fanteziste cu promisiuni în spatele scenei care înseamnă că puteți apela $ Salvați () înainte de a obține () de apel invers de fapt, și ce va aștepta. Este probabil cea mai bună modalitate de a face față resurselor sale într-o promisiune () sau a metodei de apel invers.

Normă de utilizare

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});

De asemenea, în cazul în care ceea ce ați publicat în PO, ați putea obține un obiect de resurse și apoi să apelați oricare dintre funcțiile dvs. personalizate (în teorie):

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

Aș dori să experimentez cu aplicația Ootb înainte de a pleca și a fost inventată cu toate acestea. Și dacă constatați că nu utilizați niciunul dintre caracteristicile implicite ale resurselor $, probabil că ar trebui să utilizați HTTP $ în care este proprie.

Actualizare: Unghiulară 1.2 și promite

Ca unghiular, 1.2, promite resursele de sprijin. Dar nu schimbați restul comportamentului.
pentru a profita de promisiuni $resource, trebuie să utilizați $promise al proprietate în valoarea returnată.

Exemplu de utilizare a promisiunilor

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});

Rețineți că Promisiunea Proprietății de $ este o proprietate pe aceleași valori care au venit înapoi. Puteți obține atât de ciudat:

Acestea sunt echivalente

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *