1
我正在構建一個清單應用程序,我只是從Backbone Todo example移植了大部分代碼。我卡在刷新我的應用程序的部分,它應該從存儲在本地存儲中的所有內容中追加HTML。當我在控制檯中鍵入它時追加工作,並添加我的清單新項目就好了。但刷新頁面,一切都消失了。收集提取後主幹渲染不附加HTML
我已經把一個的console.log行印出view.render()EL剛剛追加行之前的內容,並已證實是正確的。
renderItem: function(listItem) {
var view = new ListItemView({model: listItem});
this.$("#myChecklist").append(view.render().el);
$('[type="checkbox"]').checkboxradio(); // jQuery re-render
},
如果我把打印出來(console.log)view.render()。el,我得到正確的內容。這是在文檔準備好之後完成的。這是我綁定的事件我的初始化函數:
initialize: function() {
this.listenTo(checklistItems, 'add', this.renderItem); // runs renderItem() when model is added to checklist
checklistItems.localStorage = new Backbone.LocalStorage("items");
checklistItems.fetch();
},
的renderItem函數被調用後,HTML保持不變(使用id = myChecklist上行仍有裏面什麼也沒有)。其他代碼在我的repo here。我使用的是main.js,而不是app或index.js。
對於我的生活,我無法弄清楚什麼是錯誤的,並且嘗試了謹慎地遵循Todo的例子,但無濟於事。
所以'checklistItems'是全球性的,你有你的本地存儲項目的數據,但沒有''add''事件觸發?哪個版本的Backbone是這個?您是否嘗試過在'checklistItems'上聽其他事件(如「all'')來查看會發生什麼? –
當我放入除「添加」之外的東西時沒有任何反應。 – Gary
我發現了這個問題。骨幹路由器將一個模板附加到HTML主體,但這是在我的項目「呈現」(即使未實例化的主體)之後發生的。 – Gary