मेरे वेब एप्लिकेशन में, मेरे पास बाईं ओर एक तालिका में एक उपयोगकर्ता सूची और दाईं ओर एक उपयोगकर्ता विवरण फलक है। जब व्यवस्थापक तालिका में किसी उपयोगकर्ता को क्लिक करता है, तो उसका विवरण दाईं ओर प्रदर्शित किया जाना चाहिए।
मेरे पास बाईं ओर एक UserListView और UserRowView है, और दाईं ओर एक UserDetailView है। काम की तरह बातें, लेकिन मेरा एक अजीब व्यवहार है। यदि मैं बाईं ओर कुछ उपयोगकर्ताओं को क्लिक करता हूं, तो उनमें से एक पर डिलीट पर क्लिक करें, मुझे उन सभी उपयोगकर्ताओं के लिए लगातार जावास्क्रिप्ट पुष्टि बॉक्स मिलते हैं जो प्रदर्शित किए गए हैं।
ऐसा लगता है कि पहले प्रदर्शित किए गए सभी विचारों के ईवेंट बाइंडिंग को हटाया नहीं गया है, जो सामान्य प्रतीत होता है। मुझे UserRowView पर हर बार एक नया UserDetailView नहीं करना चाहिए? क्या मुझे एक दृश्य बनाए रखना चाहिए और उसका संदर्भ मॉडल बदलना चाहिए? क्या मुझे वर्तमान दृश्य का ट्रैक रखना चाहिए और नया बनाने से पहले इसे हटा देना चाहिए? मैं हारा हुआ हूँ और किसी भी विचार का स्वागत किया जाएगा। धन्यवाद !
यहाँ बाएं दृश्य का कोड है (पंक्ति प्रदर्शन, क्लिक करें घटना, सही दृश्य निर्माण)
window.UserRowView = Backbone.View.extend({
tagName : "tr",
events : {
"click" : "click",
},
render : function() {
$(this.el).html(ich.bbViewUserTr(this.model.toJSON()));
return this;
},
click : function() {
var view = new UserDetailView({model:this.model})
view.render()
}
})
और सही देखने के लिए कोड (बटन हटाएं)
window.UserDetailView = Backbone.View.extend({
el : $("#bbBoxUserDetail"),
events : {
"click .delete" : "deleteUser"
},
initialize : function() {
this.model.bind('destroy', function(){this.el.hide()}, this);
},
render : function() {
this.el.html(ich.bbViewUserDetail(this.model.toJSON()));
this.el.show();
},
deleteUser : function() {
if (confirm("Really delete user " + this.model.get("login") + "?"))
this.model.destroy();
return false;
}
})
delete viewराउटर में क्यों नहीं ?