2012-11-27 22 views
6

हटाना तो अभी जब मैं एक मॉडल को नष्ट करने और सर्वर में कोई त्रुटि देता है, को नष्ट घटना वैसे भी निकाल दिया जाता है और मॉडल डेटा रीसेट हो जाता है ..Backbone.js मॉडल विफलता

वहाँ वैसे भी ऐसा होने से रोकने के लिए है ?

उत्तर

6

आप {wait: true} को destroy() के विकल्प के रूप में पास कर सकते हैं, जिससे संग्रह से मॉडल को हटाने से पहले सर्वर से प्रतिक्रिया के लिए प्रतीक्षा करनी पड़ती है।

घटनाओं, आप, remove और destroy घटनाओं से निपटने के रूप में किया जाना चाहिए अलग remove घटना है जब सर्वर सफलतापूर्वक रिटर्न के सक्रिय होने का, लेकिन कभी सर्वर में कोई त्रुटि देता है, तो करने के लिए विचारों बंधन के संदर्भ में।

वैकल्पिक रूप से आप error हैंडलर model.destroy पर पास कर सकते हैं, जिसका उपयोग तब आप मॉडल को वापस करने के लिए कर सकते हैं यदि सर्वर किसी भी कारण से विफल रहता है। या तो बस अपने संग्रह में मॉडल को वापस जोड़ें (यदि आपके पास कोई है), या डेटा को सर्वर से पुनः लोड करने का कारण बनता है (जो सुरक्षित विकल्प हो सकता है)।

ध्यान दें कि इस विधि के साथ, remove घटना अभी भी सक्रिय कर देगा, और एक add घटना के बाद किया है जब आप मॉडल वापस डाल दिया।

thing.destroy({error: function(model, response) { 
    // put the thing back in the collection, or cause the collection to reload 
}}); 

आप मॉडल डेटा जा रहा है रीसेट उल्लेख किया; मेरा मानना ​​है कि उपरोक्त त्रुटि हैंडलर में model तर्क मूल मॉडल प्राप्त करता है, ताकि आप अभी भी अपने डेटा तक पहुंच सकें।

अधिक जानकारी के लिए रीढ़ की हड्डी दस्तावेज़ देखें - http://backbonejs.org/#Model-destroy