哪个Javascript MVC框架最适合处理关系数据

Which Javascript MVC framework best handles relational data?

本文关键字:处理 关系 数据 Javascript MVC 框架 哪个      更新时间:2023-09-26

我想尝试,第一次,一个JavaScriptMVC框架,如Knockout, Backbone.js, Spine, JavaScriptMVC等

我已经开始查看这些框架的一些可用文档,但我很难找到它们如何处理关系数据的示例。他们中的大多数人都以待办事项列表为例。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)
  • 在服务器上自动更新模型
  • 代码清晰组织
  • 等等…

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

谢谢!

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

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

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

我不认为你在寻找MVC本身,我认为你在寻找一个好的"M"的东西。你可能在寻找类似Ext JS模型关联的东西。(Ext JS当然是一个完整的框架,所以如果你想在jQuery的基础上添加一些东西,它将不适合你。)

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