使用骨幹我開始建立一個應用程序,我已經乾淨地分開一切。但是現在我有以下問題。我應該在哪裏應用主要邏輯,在視圖或模型中。 例如,我有一個觀點和一個模型,它被綁定到一個按鈕,當我點擊該按鈕,我不得不做出骨幹JS在哪裏放應用程序主邏輯
$.ajax(params)
做我把視圖或視圖調用一個方法有:
this.model.doAction(params)
你認爲哪種方法最好?
使用骨幹我開始建立一個應用程序,我已經乾淨地分開一切。但是現在我有以下問題。我應該在哪裏應用主要邏輯,在視圖或模型中。 例如,我有一個觀點和一個模型,它被綁定到一個按鈕,當我點擊該按鈕,我不得不做出骨幹JS在哪裏放應用程序主邏輯
$.ajax(params)
做我把視圖或視圖調用一個方法有:
this.model.doAction(params)
你認爲哪種方法最好?
您可以在視圖中定義events
屬性,該屬性的格式爲{"event selector": "callback"}
,例如。 {"click .collapse": "collapse"}
其中,collapse將是一個被定義爲視圖屬性的函數。然後在這個回調函數中編寫你的ajax請求代碼。
此外,除非我錯過了某些東西,「將視圖和模型綁定到按鈕」聽起來不正確。相反,您應該考慮一個與視圖的一個實例關聯的模型實例。只要模型實例的屬性發生更改,將觸發一個型號爲change
的事件。您可以將視圖函數綁定到此事件,以便模型中的更改反映在視圖中。下面是一個簡單的例子
var Book = Backbone.Model.extend({
// ...
});
var BookView = Backbone.View.extend({
initialize: function() {
this.model.bind('change', this.render, this);
},
render: function() {
// here, make changes to the dom as per changes in model
}
});
要與視圖實例模型相關聯,您可以通過它在實例化一個新的 視圖對象..
var book = new Book({
title: "A great book"
});
var view = new BookView({model: book});
view.model.set('author', 'AGreatAuthor');
設定函數調用將觸發更改事件並將導致調用視圖 的渲染功能。
有關完整示例,請參閱annotated source of Todos應用示例。
取決於'$ .ajax(params)'在做什麼樣的事情我想。 –
ajax請求然後我必須處理響應,它涉及視圖和模型中的更改 – Paranoid42
可能應該在模型中,然後來自模型的事件將觸發視圖中的更改。 –