3 回答

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

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

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