解耦一个数据源

Backbone.js - decoupling a data source?

本文关键字:一个 数据源 解耦      更新时间:2023-09-26

我有这个Backbone模型:

graphModel
 attributes
   country
   indicator
   year

与相应的视图:

graphView
 render()
   this.model.get(...)

应用程序还有一个通用数据源,用于加载csv数据:

dataSource
  indicators
    indicatorA
      country
        year
    indicatorB
      countries
        years

每次更改模型属性时,我想在触发更改事件之前检查该属性组合的数据是否加载。

我的问题是:什么是将数据源与骨干模型和视图解耦的好方法,以便我可以轻松地尝试注入的模拟数据?

我有点不清楚当你说的应用程序有一个数据源填充的CSV数据,你说的是一个应用程序的服务器端,然后骨干通信或客户端。

但是不管怎样。我可以谈谈我们在脱钩方面的经验。我们经常构建模型,并使用Backbone的能力来拥有"默认"值,就像Backbone文档中的这个例子:

var Meal = Backbone.Model.extend({默认值:{"开胃菜":"凯撒沙拉";"主菜":"馄饨","甜点":"芝士蛋糕"}});

有了这样预填充的模型,我们就可以将视图绑定到模型并将该数据呈现给页面。类似地,如果您有任何其他可以轻松获得所需数据的来源(可以使用jQuery的.load()函数加载压缩文件,或者可以通过模型的.set()函数转储文本区域的内容)。

据我所知,你对不同的模型有一个URL,你想在设置或更改模型之前以某种方式检查它。

你可以在模型上使用parse()方法来改变它的内容,参见http://documentcloud.github.com/backbone/#Model-parse