2013-05-22 29 views
5

Kullanıcı, bir kullanıcı etkileşimde bulunduğunda güncel kaynakları listelemeye çalışıyorum. Bir AngularJS ngResource kullanma Ben başlangıçta onu query yöntemini kullanarak listeyi tut. Her kaynak $remove (veya $delete) yöntemine sahip, değil mi? Ancak, tetiklendiğinde kaynak, query'dan döndürülen listeden kaldırılmaz.AngularJS ngResource delete olayı

Bu çok şey soruyor, biliyorum, ama neredeyse benim için herşeyi yapacağını umuyordum. Bunu sakla, bunu nasıl başarabilirim. Kaynağın kendisi bir çeşit olay yayıyor mu? Silinen bir özelliği var mı $watch? Bir kaynağın $remove 'd olduğunu nereden biliyordum, böylece listeden ekleyebilir miyim?

Teşekkürler.

+0

: Ben böyle bir şey olurdu tahmin ediyorum Senin için

instance.$action([parameters], [success], [error]) 

Başvurduğunuz kod nerede? –

+0

Gerçek bir utanç, bunu kendi başına halletmez. Yapılması gereken açık bir şey gibi görünüyor. –

cevap

6

Array 's splice yöntemini kaldırmak için ($index is ng-repeat's implicit index adlı kişiyi) kullanmak zorundasınız.

$scope.removeItem = function (index) { 
    $scope.items[index].$delete(); 
    $scope.items.splice(index, 1); 
} 

Sonra HTML'nize

<a ng-click="removeItem($index)">remove me</a> 
+0

Bu çoğu zaman işe yarayacak, ancak bir çeşit hata sunucusu tarafı olduğunda ne olur. Siz UI artık doğru durumu yansıtmayacaksınız. – testing123

+0

sonra bir geri arama olarak iletebilirsiniz, sanırım :) – Ven

2

Hemen başarı geri arama işlevini kullanın:

myResource.$delete([parameters], function() { 
    //delete was successful 
});