我在閱讀關於Backbone的文章時發現的共識似乎是:不要在視圖中存儲東西,將其存儲在模型中,然後讓視圖監聽模型上的更改。跟蹤視圖狀態信息的推薦方式是什麼?
如果我們談論的情況是,我們已經有了明顯的模型 - 視圖配對,這非常棒。例如,您有一個用戶模型和一個UserView視圖。很明顯,你在視圖上設置了一個模型屬性,它監聽模型的變化。
然而,假設我有一個視圖,顯示了一個東西的列表,並且有兩個按鈕可以在「列表視圖」和「網格視圖」之間切換。這是我在應用程序和網站中看到的一個非常常見的約定。我是否想要「列表視圖」或「網格視圖」與模型/集合本身無關;這個觀點本身似乎非常具體。
起初我只是嘗試使用完全像模型的視圖:設置屬性,綁定事件'change:propertyName'
,然後使用someView.set('propertyName')
等等來更新它......但這不起作用。
一邊想着如何處理這個,我以爲我記得看到這樣的事情之前:
var MyView = Backbone.View.extend({
...
model: Backbone.Model(),
...
});
因此,與有,比方說,一個的usermodel ..我們只是有一些「無類型」的模式。或者我想,我實際上可以創建一個新的課程,也許只是爲了這個,我稱MyViewModel
...雖然我沒有看到一個理由。
這允許我像我想要的那樣綁定到更改事件並使用someView.model.set(...)
設置視圖數據。
所以我的問題是:這是人們在Backbone中爲視圖狀態做的常見事情嗎?或者,還有更好的方法?謝謝。