4

我希望第一次尝试 JavaScript MVC 框架,如KnockoutBackbone.jsSpineJavaScriptMVC等。

我已经开始查看可用于这些框架的一些文档,但我很难找到它们如何处理关系数据的示例。他们中的大多数都以 ToDo 列表为例。ToDo 列表很好,但它不包括关系数据。也许一个更好的例子是一本带有食谱和配料模型的食谱:

var Recipe = function(){
   this.name = "Pizza";
   this.description = "A delicious baked, flat, disc-shaped bread topped with tomato sauce and cheese.";
}

var Ingredient = function(){
   this.name = "Tomato sauce"
}

var IngredientToRecipe = function(){
   this.recipe = null;
   this.ingredient = null;
   this.quantity;
}

到目前为止我看到的模型示例似乎没有处理关系问题:外键、id 生成等。上面的示例是多对多关系,但即使支持,我也会很高兴对于一对多的关系。

我真的很喜欢这些框架提供的东西:

  • 对模型的更改会自动更新视图(即 DOM)
  • 模型更改时自动更新服务器上的模型
  • 清晰的代码组织
  • ETC...

但是,我想就哪个框架最好地处理模型之间的关系提出建议,并有一个这样做的例子。

谢谢!

4

3 回答 3

2

虽然 Backbone(故意)不非常优雅地支持包含其他模型/集合的模型,但Backbone-relational增加了对它的支持并且工作得很好。查看他们的文档。

于 2011-08-31T01:31:07.350 回答
1

Sproutcore 有一个客户端数据存储,它允许您在 toOne、toMany 和 ManyToMany 关系中将不同的模型对象相互关联。您实际上可以针对存储编写查询,这些查询会在数据更改时自动更新。同样,如果您进行更新并且模型对象发生更改,则附加到该模型(通过控制器)的任何视图都将自动更新)。此外,SC 具有嵌套存储功能,允许您无缝放弃更改,用于“保存或取消”类型的工作流程。

http://guides.sproutcore.com/records.html

于 2011-08-30T18:24:26.063 回答
0

我不认为您正在寻找 MVC 本身,我认为您正在寻找具有良好“M”的东西。所以你可能正在寻找像我们的 Ext JS 模型关联这样的东西。(当然,Ext JS 是一个完整的框架,所以如果你想在 jQuery 上添加一些东西,它不适合你。)

这是Ext JS 4 中模型的文档,这里是Ext JS 4 MVC 的顶级指南

于 2011-08-31T00:49:54.703 回答