2011-11-20 51 views
1

我想在js中建立一个联系人列表,但有很多js技术,比如backbone.js,spine.js,knockout.js等等,我真的不知道哪一个最适合我。什么是Javascript框架最适合这种情况?

我的联系人有几个全局类型:FacebookUser,User和UserList。用户列表捕获的是它是用户或用户列表的集合。此外,它本身可能有也可能没有自己的联系信息(如公司或团队)。

我想在树视图中显示此列表,您可以深入到UserList中(并且已经加载组成员)。

最后,整个联系人列表是一个实例。我的意思是,您一次只能在同一个窗口中打开0到n个联系人列表。

我应该在这种情况下使用什么框架?

回答

4

您提到的所有三个库(backbone.js,spine.js,knockout.js)都针对单页浏览器应用程序。

但是您对问题的描述听起来更像是格式问题,而不是数据管理。也就是说,你希望你的页面显示数据。您不需要将更改从页面保存回服务器;您的用户将刷新页面以显示新的或不同的信息。

如果我对你的目标的理解是正确的,我会使用jQuery或YUI。你提到的libs会过度杀伤。

加入 YUI有一个不错的treeview widget,支持延迟加载分支。我为此使用它。

如果您决定使用模型图层,YUI 3将包含ModelModelList。它们基于Backbone API。

重新:MVC注释在评论中,OP提到

“从服务器上的同一数据的多个视图,变化的传播,和编辑检测(如果用户改变的数)和更新”对于那些情况,是的,现在很多很酷的孩子都在浏览器上使用完整的MVC框架。如果你想朝那个方向走,那么你可以使用你提到的三个中的任何一个。注:

  • 骨干,也可能是另外两个,做提供完整的MVC。相反,Backbone提供型号&控制器部分,特别是型号。视图使用Mustache是很常见的。另外,通常使用下划线或jQuery来提供基本设施。如果你是谷歌的骨干例子,其中许多包括jQuery。

  • 结帐YUI新y.App。它包含了一个有据可查的lib中的所有MVC部分。 y.App正处于热门的发展阶段,它基于Backbone API。 A video-cast

  • MVC浏览器上的框架是全新的。不要惊讶于快速更改库代码,不一致的文档,少数示例等。您还应该考虑记录和发布调查。要获得额外的功劳,请在移动浏览器上正常运行。传闻信号是在浏览器端MVC框架上工作,但我们还没有看到任何东西。

  • 我相信骨干是最高级的模型库。但它已被证明会让很多新用户感到困惑,因此基于其概念的其他一些库也是如此。

  • 根据我对YUI的经验,他们的Y.app将拥有最一致和完整的API集和最好的文档。

+0

它只是我的一般编程感觉告诉我,一个很好的GUI有模型,视图,控制器。这使我能够从视图中分离数据。它允许对同一数据的多个视图,更改传播和编辑检测(如果用户更改数字)并从服务器进行更新 – chacham15

+0

@chacham15 MVC只是一种方法,虽然我也倾向于使用MVC方法,但它不是唯一的。尽管如此,带有或不带有jQuery的JavaScript或者您提到的其他库仍然可以成为MVC应用程序的一部分。 –

+0

如果我沿着jquery的路走下去,那么如果有必要的话,是否很难适应骨干? – chacham15

0

如果我们把您的具体情况,我会极力去Knockout.js

淘汰赛是专为UI即你的数据模型可以绑定到HTML元素,然后在模型中的任何改变操纵相应的用户界面。

在您的情况下,联系人列表的添加/删除操作将由Knockout自动处理。所有你需要的是定义如何处理树视图中的变化(无论是通过代码还是通过HTML模板),Knockout将负责处理这个问题。

说过,定义联系人列表的树视图仍然是不同的任务,您可能需要为此使用一些CSS/JS库。

相关问题