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.
添加回答
举报