3 回答

TA貢獻(xiàn)1806條經(jīng)驗 獲得超8個贊
我認(rèn)為這里的model要分兩個方面來看:
一類為業(yè)務(wù)模型,你舉例中的圖表就是一種業(yè)務(wù)模型,select的數(shù)據(jù)也是一個業(yè)務(wù)模型(如果它不只是簡單前端生成的時間); 一類為視圖模型,即view-model(backbone沒有view-model,可以通過backbone插件,也可直接寫在view類上),一般呈載頁面的一些狀態(tài)和需要顯示的項目,比如一些控件現(xiàn)在是展開還是閉合。
拿到頁面要看需要哪些業(yè)務(wù)模型,這些模型并非只用于這一個頁面,他是由你的業(yè)務(wù)決定的。一個頁面可能只使用一個模型,也可能使用多個模型,可以理解成一個頁面由一個動態(tài)程序輸出,但查詢了多張表獲取數(shù)據(jù)。按你的例子,select中的數(shù)據(jù)可以對應(yīng)一個model,圖表可以是一個model, select的通過自己的model渲染,然后修改時通知圖表的model fetch新數(shù)據(jù),然后圖表的view因為model的change而重新渲染。

TA貢獻(xiàn)1811條經(jīng)驗 獲得超4個贊
Backbone 的 Model 主要功能是用 RESTfull 的方式實現(xiàn)和后端 API 的通信。
View 則負(fù)責(zé)顯示 Model/Collection 里的數(shù)據(jù),來完成渲染。也可以監(jiān)聽 Model/Collection 的變化,重新渲染。
因此,我覺得并不應(yīng)該以界面做為設(shè)計 Model 的考量。你說的日期選擇器和某種圖表,具體實現(xiàn)的方式也有很多,比如:
直接用參數(shù)或事件的形式傳給顯示圖表的 view 的渲染方法,渲染方法里有對日期進(jìn)行處理的邏輯,這樣其實是沒有用到 Model 的。
再比如使用一個 Model/Collection 做為圖表數(shù)據(jù)的載體,設(shè)定事件讓日期選擇器更新 Model/Collection ,圖表的 View 監(jiān)聽這個變化重新渲染圖表。
Backbone 是相對靈活的框架,需要自己根據(jù)自己的需求,來進(jìn)行合理的設(shè)計。

TA貢獻(xiàn)1982條經(jīng)驗 獲得超2個贊
這個是根據(jù)后端的接口來,如果要用model.后端要實現(xiàn)restful接口,你只要與后端模型一一對應(yīng)就好了,這叫對象關(guān)系映射,比如用戶,就有一個UserModel.
添加回答
舉報