में बाइंड के साथ संदर्भ पास करना मैं चाहता हूं कि मेरे पैनल क्लिक किए जाने पर स्वयं को फिर से प्रस्तुत करें।backbone.js
हालांकि, जब मैं एक क्लिक के प्रदर्शन मैं निम्नलिखित मिल:
Uncaught TypeError: Cannot call method 'get' of undefined
ऐसा लगता है कि "इस" है कि मैं लॉगिन कर रहा हूं वास्तव में मॉडल ही है:
_callbacks: Object
_changed: true
_escapedAttributes: Object
_previousAttributes: Object
attributes: Object
cid: "c0"
collection: r.d
id: "f5589ba4-a0aa-dd86-9697-30e532e0f975"
__proto__: n
मैं मुझे यह समझने में परेशानी हो रही है कि उपयुक्त "यह" मॉडल में मेरे संदर्भ को पारित करके संरक्षित क्यों नहीं है।
// Models
window.Panel = Backbone.Model.extend({
defaults: function(){
return {
flipped: false,
};
},
toggle: function(){
this.save({flipped: !this.get("flipped")});
},
});
// Collections
window.PanelList = Backbone.Collection.extend({
model:Panel,
localStorage: new Store("panels"),
flipped: function(){
return this.filter(function(panel){ return panel.get("flipped"); })
}
});
// Global collection of Panels
window.Panels = new PanelList;
// Panel View
window.PanelView = Backbone.View.extend({
tagName: 'div',
template: _.template($("#panel-template").html()),
events: {
"click" : "toggle"
},
initialize: function(){
this.model.bind("change", this.render, this)
$(this.el).html(this.template(this.model.toJSON()));
},
render: function(){
console.log(this);
var flipped = this.model.get("flipped")
if (flipped){
$(this.el).addClass("flip");
} else{
$(this.el).removeClass("flip");
}
return this
},
toggle: function(){
this.model.toggle();
}
});
दोषहीन। आप राज। – nottombrown