我正在開發一個部分基於Backbone.js todo example app的應用程序。一切都很好,直到我嘗試添加編輯功能。我發現的是一些奇怪的行爲。主幹和改變模型屬性
我有一種形式,它創建新的模型對象,並將其添加到集合。當創建新模型(綁定到「添加」事件)時,還會創建新視圖並將其添加到dom中。就像在該TODO應用程序,它的工作原理。
現在我嘗試添加編輯功能。我在視圖對象方法中創建輸入元素並嘗試「提交」更改。我嘗試通過使用view.model.set -method簡單地改變模型屬性來實現這一點。這有效,但一些奇怪的事件被觸發。這可能很好,因爲我想在模型更改時再次渲染視圖。
主要問題:在我看來(工作一個)對象有渲染方法包含這個調試行:'console.log(this)'。當視圖對象首次被窗體創建時,該行輸出正確的對象。當我嘗試編輯模型併爲其設置新值時,調試將打印完全不同的對象。這沒有用,渲染失敗。
我希望這些例子足夠了。
主要觀點:
this.myCollection.bind('add', function(model){
var myView= new myViewRow({
model: model
});
$("#container").find('tbody').append(myView.render().el);
}, this);
和MyView的:
render: function() {
console.log(this);
var data = this.getAsArray();
$(this.el).html(content);
return this;
}
任何提示什麼,我做錯了什麼?什麼事件集方法觸發,爲什麼我的渲染方法是在錯誤的對象之後?
你能發佈完整的視圖嗎? –