में उचित रूप से हटा नहीं रहा है, मुझे एक मॉडल के अंदर किसी संग्रह में किसी आइटम को हटाने में कुछ समस्या आ रही है। जब मैं देखने यह वास्तव में संग्रह से सही मद को हटा उप मद में सब आइटम संग्रह से कोई आइटम दूर करने की कोशिशbackbone.js संग्रह आइटम को
असल: मूल रूप से मॉडल/संग्रह संरचना निम्नलिखित है। हालांकि जब मैं मुख्य मॉडल को जारी रखने के लिए आता हूं तो आइटम संग्रह में अभी भी प्रतीत होता है।
इस तरह अपने विचार संरचित कर रहे:
मुख्य दृश्य सम्मिलित करता है डोम मुख्य मॉडल के आधार पर आवश्यक नोड्स, और उन्हें मुख्य मॉडल आइटम मॉडल आदि सभी विचार हैं के लिए एक नया दृश्य बनाता है इसलिए जैसे मॉडल विकल्प के रूप में मुख्य मॉडल हो रही:
new App.Views.MainModelView({
model : this.model,
el : $('#nodeID')
})
फर्क सिर्फ इतना सब-आइटम मॉडल देखने के लिए, जहां, कारण देख सकते हैं और टेम्पलेट की उपयोगिता फिर से के निर्माण में है, मैं अभी भी मुख्य में पास मॉडल, हालांकि मैं आइटम संग्रह में आइटम में भी पास करता हूं जो cur है किराए पर संशोधित किया जा रहा है। कौन इस तरह दिखता है:
:this.item = (this.options.item) ? this.options.item : this.model;
उप आइटम संग्रह मैं क्या से एक उप आइटम निकालने के लिए:
new App.Views.ItemView({
model : this.model,
item : this.selectedItem,
el : $('#nodeID')
});
उप आइटम के दृष्टिकोण init विधि में मैं निम्न कार्य करें
removeSubItem : function(e) {
// get the id of the sub-item to be removed
var id = $(e.target).closest('tr').attr('data-id');
if (!id) throw "Could not retrieve data id";
// retrieve the sub-item from the collection
var subItem = this.item.subItems.get(id);
// remove the sub-item from the collection
this.item.subItems.remove(subItem);
},
जैसा कि मैंने उप-आइटम को हटाते समय पहले कहा था और मैं दृश्य द्वारा संशोधित संग्रह का निरीक्षण करता हूं, मैं देख सकता हूं कि सब-आइटम संग्रह से हटा दिया गया है, फिर भी मैं मुख्य मॉडल को हटाए गए उप- आइटम फिर से प्रकट होता है। मुझे विश्वास है कि लाइन के साथ कहीं भी उप-आइटम संग्रह क्लोन किया जा सकता है जो उप-आइटम के अचानक पुन: प्रकट होने की व्याख्या कर सकता है।
मुझे पता है कि यह एक काफी विशिष्ट समस्या है और मुझे यकीन नहीं है कि अगर मैंने यहां प्रदान की है तो समस्या के कारण को प्राप्त करना संभव है, अगर आपको कोई और जानकारी चाहिए तो कृपया मुझे बताएं।
अपने सभी मदद के लिए धन्यवाद,
विन्सेंट
========== संपादित ============
से कुछ जवाब देने के लिए नीचे दिए गए प्रश्नों में मुझे इस समस्या का सामना करना पड़ रहा है जिसमें मुझे इस समस्या का सामना करना पड़ रहा है:
यदि मैं सबइटम दृश्य में this.item.subItems संग्रह को लॉग इन करता हूं, तो हटाए जाने के बाद Subitem कहा जाता था, मैं देख सकता हूं कि SubItem का उदाहरण मॉडल सफलतापूर्वक हटा दिया गया है। इससे पहले कि मैं मुख्य मॉडल पर सहेजने की विधि को कॉल करता हूं, मैं कंसोल को toJSON फ़ंक्शन की वापसी लॉग करता हूं। इस बिंदु पर मुझे समस्या का सामना करना पड़ रहा है कि पहले हटाए गए उदाहरण संग्रह में 'बैक' है। मैं वायरसहार्क और Google क्रोम के डेवलपर कंसोल दोनों के साथ क्लाइंट और सर्वर के बीच यातायात की निगरानी कर रहा हूं और किसी भी मॉडल को रीफ्रेश करने के लिए सर्वर को कोई कॉल नहीं है।
सब आइटम एकत्र करने के लिए toJSON विधि इस प्रकार है:
toJSON : function() {
App.log(["SubItem::collection::toJSON", this], "info");
var json = {};
// make sure the key for each SubItem is the primary key
this.each(function(subItem) {
json[subItem.get('id')] = subItem.toJSON();
});
return json;
}
कृपया हमें बताएं या दिखाएं कि आपका क्या मतलब है "जारी" और आप इसे कैसे करते हैं और आप इसे कैसे पुनः लोड करते हैं। – Julien
जब मैं लगातार बने रहने के बारे में बात करता हूं, तो मेरा मतलब सर्वर पर मॉडल को सहेजना है, इस प्रकार मुख्य मॉडल पर सहेजने की विधि को कॉल करना। सहेजा जा रहा है देशी या overridden toJSON विधियों की एक श्रृंखला के माध्यम से किया जाता है। अधिक जानकारी के लिए कृपया संपादन देखें। – luxerama