Kaynak Dinlendirici bir örnek AngularJS $
Kullanın benim Dinlendirici servisi, hala üzerinde çalışıyorum) web çağrı için kaynak $isterim ama eğer benim AngularJS alırsam önce senaryoyu doğru öğrenmek istiyorum.
DTO var yapılacak: {id, order, content, done}
:cmd
api/1/todo/reset
veritabanı todo tablo temizlemek için çağırabilirim.
Burada benim anladığım açıklama kod:
function TodoService($resource) {
var src = $resource('api/1/todo/:id:cmd',
{id: "@id", cmd: "@cmd"}, //parameters default
{
ListTodos: { method: "GET", params: {} },
GetTodo: { method: "GET", params: { id: 0 } },
CreateTodo: { method: "POST", params: { content: "", order: 0, done: false } },
UpdateTodo: { method: "PATCH", params: { /*...*/ } },
DeleteTodo: { method: "DELETE", params: { id: 0 } },
ResetTodos: { method: "GET", params: { cmd: "reset" } },
});
//Usage:
//GET without ID
//it calls -> api/1/todo
src.ListTodos();
//GET with ID
//it calls -> api/1/todo/4
src.GetTodo({ id: 4 });
//POST with content, order, done
//it calls -> api/1/todo
src.CreateTodo({ content: "learn Javascript", order: 1, done: false });
//UPDATE content only
//it calls -> api/1/todo/5
src.UpdateTodo({ id: 5, content: "learn AngularJS" });
//UPDATE done only
//it calls -> api/1/todo/5
src.UpdateTodo({ id: 5, done: true });
//RESET with cmd
//it calls -> api/1/todo/reset
src.ResetTodos();
}
Emin değilim belli bir şey YAMA yöntemi, her şeyi restore etmek istemiyorum, ben sadece tek bir alanı güncelleme yapabilirim? Bu kod parçası oluşturarak, doğru muyum?
CEVAP
kaynak, son nokta verileri almak, işlemek ve geri göndermek gerekiyordu. $ Varbazıorada, ama gerçekten yapamadı ne için yararlanarak değilsin.
İyi kaynak özel yöntemleri var, ama OOTB ile birlikte geliyor serin özellikleri kaçırmak istemezsin.
EDİTBu aslında oldukça iyi, ama $kaynak döner ile bazı funky şeyler yapar açıkladım sanmıyorum. Todo.() almak ve Yapılacaklar.() sorgudönüşkaynak nesneveiçine geçirirgeri aramabu tamamlandığı zaman için. Diyebilirsin yani o sahneleri Kaydet $arkasında vaatlerle süslü şeyler yok () () geri gerçekten yangınlar ve bekleyecektir. Muhtemelen iyi bir söz içinde yapılan() ya da geri arama yöntemi.
Standart kullanın
var Todo = $resource('/api/1/todo/:id');
//create a todo
var todo1 = new Todo();
todo1.foo = 'bar';
todo1.something = 123;
todo1.$save();
//get and update a todo
var 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 todos
Todo.query(function(todos) {
//do something with todos
angular.forEach(todos, function(todo) {
todo.foo = ' something';
todo.$save();
});
});
//delete a todo
Todo.$delete({id: 123});
Aynı şekilde, OP yazdıklarını durumunda, kaynak bir nesne almak ve özel fonksiyonlar (teorik olarak) herhangi bir çağrı yapar:
var something = src.GetTodo({id: 123});
something.foo = 'hi there';
something.UpdateTodo();
Gittim ve ancak benim kendi icat önce OOTB uygulama ile deneme istiyorum. Ve eğer varsayılan özellikleri kaynağın $kullanmadığınız bulursanız, muhtemelen sadece kendi $http kullanıyor olması gerekir.
Güncelleme: Açısal 1.2 ve Vaat ediyor
Açısal olarak 1.2, kaynakları destek vaat ediyor. Ama bu davranış, geri kalanı değiştirmediler.
$resource
ile kaldıraç sözler için döndürülen değeri $promise
bu özelliği kullanmak gerekir.
Örnek sözler kullanarak
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öz özellik $üstünde geri döndü de aynı değerleri üzerinde bir özellik olduğunu unutmayın. Tuhaf alabilirsiniz:
Bu eşdeğerdir
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;
});
ORA-00054: kaynak meşgul ve aşağıdaki ...
AngularJS çapraz kökeni kaynak için SE...
AngularJS - birden fazla kaynak sorgul...
AngularJS kimlik Doğrulama Dinlendiric...
Nasıl angularjs sayfamda Dinlendirici ...