का संदर्भ खो देता है मैं बैकबोन द्वारा संचालित एक ऐप स्थापित कर रहा हूं। मुझे एक "सरल-सरल" समस्या का सामना करना पड़ रहा है, जहां मेरे पास "संदेश" नामक एक मॉडल है, जिसे "संदेश सूची" कहा जाता है, और "संदेश दृश्य" और "संदेशसूची दृश्य" नामक दृश्य।बैकबोन संग्रह - संग्रह को फ़िल्टर करना और प्रस्तुत करना मूल unfiltered संग्रह
संदेशसूची दृश्य कोड संदेशसूची प्रस्तुत करता है। मेरे पास 4 टॉगल बटन हैं जो संदेश लिस्ट व्यू दिखाते हैं। फ़िल्टर बटन "सभी", "सक्रिय", "ध्वजांकित" और "अनदेखा" होते हैं। "सभी" पृष्ठ लोड पर प्रारंभिक फ़िल्टर है। जब कोई उपयोगकर्ता "ध्वजांकित" फ़िल्टर दबाता है, तो केवल ध्वज वाले संदेश == 1 दिखाई देना चाहिए। जब "ऑल" फिर से दबाया जाता है, तो सभी संदेश फिर से दिखने चाहिए।
जिस समस्या में मैं दौड़ रहा हूं, और मेरे डिज़ाइन में समस्या यह है कि जब मैं फ़िल्टरस्ट्रिंग के आधार पर संग्रह फ़िल्टर करता हूं, तो मूल संपूर्ण संग्रह का संदर्भ खो जाता है। इसलिए, जब "ऑल" फिर से दबाया जाता है, तो संदेश खो गए हैं।
मैं रीढ़ में ऐसा करने का सबसे अच्छा तरीका जानने के लिए उत्सुक हूँ ...
यहाँ सेटअप कोड है ...
var messageListView = new MessageListView({collection: messageList});
यहाँ MessageListView कोड है ...
MessageListView = Backbone.View.extend({
initialize : function() {
this.collection.on("add", function(model) {
var view = new MessageView({model: model});
$("div.cameras").prepend(view.render().el);
});
this.collection.on("remove", function(model) {
var ID = model.id;
$("#message-" + ID).parent("div.message").remove();
});
this.collection.on("reset", function(models) {
$("div.cameras").empty();
models.each(function(message) {
var view = new MessageView({model: message});
$("div.cameras").prepend(view.render().el);
});
});
},
filterMessages : function(filterString) {
var filtered = this.collection.filter(function(model){
if (filterString == "all")
{
return true;
}
else if (filterString == "active")
{
return model.get("ignore") == "0";
}
else if (filterString == "ignore")
{
return model.get("ignore") == "1";
}
else if (filterString == "flag")
{
return model.get("flag") == true;
}
});
this.collection.reset(filtered);
},
मैं दोनों सवाल-जवाब, धन्यवाद लोग upvoted। ओपी के लिए सिर्फ एक संकेत: मैं संग्रह फ़िल्टर में फ़ंक्शनिंग फ़ंक्शन (ओं) को रखूंगा, न कि दृश्य। एमवीसी दुनिया, "फैट मॉडल, पतला नियंत्रक" कह रही है। बैकबोन में, दृश्य नियंत्रक के रूप में कार्य करता है। और तथ्य यह है कि बैकबोन के संग्रह में अंडरस्कोर के कार्य हैं, उस दिशा में एक संकेत है। – DjebbZ