मैं एक साथ डाल रहा हूँ एक रीढ़ उदाहरण है, जिसमें मॉडल संपादित किया है और नष्ट कर दिया बनाई गई हैं में localStorage का उपयोग कर। मैं स्थानीय मॉडलों में नए मॉडल और संपादन को सहेजने में सक्षम हूं, लेकिन रीफ्रेश पर ठीक से प्रदर्शित करने के लिए स्थानीय स्टोरेज प्राप्त करने में समस्या आ रही है। ऐसा लगता है कि एक वस्तु के रूप में लोड हो रहा है, और इसलिए मुझे एक मॉडल देता है चाहे कितने जोड़े गए थे।Backbone.js
var Thing = Backbone.Model.extend({
defaults: {
title: 'blank'
}
});
var ThingView = Backbone.View.extend({
template: _.template('<b><button id="remove">X</button> <b><button id="edit">Edit</button> <%= title %></b>'),
editTemplate: _.template('<input class="name" value="<%= name %>" /><button id="save">Save</button>'),
events: {
"click #remove": "deleteItem",
"click #edit": "editItem",
"click #save": "saveItem",
},
deleteItem: function() {
console.log('deleted');
this.model.destroy();
this.remove();
},
editItem: function() {
console.log('editing');
this.$el.html(this.editTemplate(this.model.toJSON()));
},
saveItem: function() {
console.log('saved');
editTitle = $('input.name').val();
console.log(editTitle);
this.model.save({
title: editTitle
});
this.$el.html(this.template(this.model.toJSON()));
},
render: function() {
var attributes = this.model.toJSON();
this.$el.append(this.template(attributes));
return this;
}
});
var ThingsList = Backbone.Collection.extend({
model: Thing,
localStorage: new Store("store-name"),
});
var storeVar = localStorage.getItem("store-name");
console.log(storeVar);
var thingsList = new ThingsList;
thingsList.reset(storeVar);
var ThingsListView = Backbone.View.extend({
el: $('body'),
events: {
'click #add': 'insertItem',
},
initialize: function() {
this.render();
this.collection.on("add", this.renderThing, this);
},
insertItem: function (e) {
newTitle = $('input').val();
newThing = new Thing({
title: newTitle
});
this.collection.add(newThing);
newThing.save();
console.log(this.collection.length);
},
render: function() {
_.each(this.collection.models, function (items) {
this.renderThing(items);
}, this);
},
renderThing: function (items) {
var thingView = new ThingView({
model: items
});
this.$el.append(thingView.render().el);
}
});
var thingsListView = new ThingsListView({
collection: thingsList
});
सका वास्तव में क्या तुम यहाँ किया था के बारे में थोड़ा कमेंटरी का उपयोग करें। आप वास्तव में सिर्फ बाहर टिप्पणी की थी लाइन और सब कुछ अब खुश है? यह क्यों कार्य किया? क्या पहली जगह में गलत था? –