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

4
我想尝试使用JavaScript MVC框架,如Knockout, Backbone.js, Spine, JavaScriptMVC等。这是我第一次使用此类框架,我已经开始查看一些可用的文档,但我很难找到处理关系数据的示例。大多数示例都使用待办事项列表。待办事项列表不错,但它并不能涵盖关系数据。也许更好的例子是一个包含食谱和配料模型的烹饪书。
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) - 在服务器端自动更新模型的更改 - 代码的清晰组织 - 等等...
但是,我想知道哪个框架最适合处理模型之间的关系,并且有一个处理过关系的示例。
谢谢!
3个回答

2

虽然 Backbone (有意地) 不太优雅地支持包含其他模型/集合的模型,但是Backbone-relational添加了对其的支持,并且运行得非常好。请查看他们的文档。


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

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


@adam,你是什么意思?这是一个功能齐全的应用程序框架,所以它有很多东西。我认为他们正在努力将Sproutcore2缩减到50kb... - hvgotcodes
这实际上是使用ember data从ember.js中获取的。Sproutcore只是在其上构建了一个UI...所以,如果这个数据模型听起来不错,那就看看ember框架吧。一旦你克服了学习曲线,它就非常棒。 - j bee

0

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接