2013-05-22 6 views
5

मैं संसाधनों की एक सूची को अद्यतित रखने की कोशिश कर रहा हूं क्योंकि उपयोगकर्ता इसके साथ इंटरैक्ट करता है। एक AngularJS ngResource का उपयोग करके मैं प्रारंभ में इसकी query विधि का उपयोग करके सूची को पकड़ता हूं। प्रत्येक संसाधन के बाद $remove (या $delete) विधि है, है ना? लेकिन जब निकाल दिया गया, संसाधन query से लौटाई गई सूची से हटाया नहीं गया है।AngularJS ngResource ईवेंट हटाएं

यह बहुत कुछ पूछ रहा है, मुझे पता है, लेकिन मुझे उम्मीद थी कि यह मेरे लिए सब कुछ करेगा। इसे बचाओ, मैं इसे कैसे पूरा कर सकता हूं। क्या संसाधन स्वयं किसी तरह की घटना को छोड़ देता है? क्या इसमें एक हटाई गई संपत्ति है I $watch? मैं कैसे जानूंगा कि एक संसाधन $remove 'डी था इसलिए मैं इसे सूची से बाहर कर सकता हूं?

धन्यवाद।

+0

आप जिस कोड का जिक्र कर रहे हैं वह कहां है? –

+0

यह एक वास्तविक शर्म की बात है जो इसे स्वयं ही संभाल नहीं पाती है। ऐसा करने के लिए यह एक स्पष्ट रूप से स्पष्ट बात प्रतीत होता है। –

उत्तर

6

आपको इसे हटाने के लिए Array की splice विधि का उपयोग करना होगा ($index एनजी-दोहराना का निहित सूचकांक है)।

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

और फिर अपने HTML में

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

यह ज्यादातर समय काम करेगा, लेकिन जब कुछ प्रकार की त्रुटि सर्वर-साइड होती है तो क्या होता है। आप यूआई अब सही स्थिति को प्रतिबिंबित नहीं करेंगे। – testing123

+0

तो आप इसे कॉलबैक के रूप में पास कर सकते हैं, मुझे लगता है :) – Ven

2

बस सफलता कॉलबैक फ़ंक्शन का उपयोग करें:

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

आप के लिए मैं अनुमान लगा रहा हूँ कि तरह कुछ होगा:

myResource.$delete([parameters], function() { 
    //delete was successful 
}); 
संबंधित मुद्दे