我想在js中建立一个联系人列表,但是有很多js技术,比如backbone.js,spine.js,knockout.js等,我真的不知道哪一个最适合我。
我的联系人有几种类型:FacebookUser,User和UserList。用户列表的捕获是它是用户或UserLists的集合。此外,它本身可能有也可能没有自己的联系信息(如公司或团队)。
我想在树视图中显示此列表,您可以在其中深入查看UserList(并使组成员延迟加载)。
最后,整个联系人列表是一个实例。我的意思是你一次在同一个窗口中打开0-n个联系人列表。
我应该在这种情况下使用什么框架?
答案 0 :(得分:4)
您提到的所有三个库(backbone.js,spine.js,knockout.js)都针对单页浏览器应用程序。
但是您对问题的描述听起来更像是格式化问题,而不是数据管理。即,您希望页面显示数据。您不需要将更改从页面保存回服务器;您的用户将刷新到该页面以显示新的或不同的信息。
如果我对你的目标的理解是正确的,我会选择jQuery或YUI。你提到的libs会有点过分。
已添加 YUI有一个很好的treeview widget,支持延迟加载分支。我用它。
如果您决定使用模型图层,则YUI 3包含Model和ModelList。它们基于Backbone api。
回复:MVC评论在评论中,OP提到了相同数据的多个视图,更改传播和编辑检测(如果用户更改了数字)和更新服务器"
对于那些情况,是的,现在很多很酷的孩子都在浏览器上使用完整的MVC框架。如果你想朝这个方向前进,那么你可以使用你提到的三个中的任何一个。注意:
Backbone,可能还有其他两个, not 提供完整的MVC。相反,Backbone提供Model&控制器部分,尤其是模型。通常使用Mustache作为视图。此外,通常使用下划线或jQuery来提供基本功能。如果你是谷歌的主干示例,其中许多包括jQuery。
结帐YUI new y.App。它包含一个记录良好的lib中的所有MVC部分。 y.App正处于热门开发阶段,基于Backbone api。一个video-cast
浏览器上的MVC框架是全新的。不要因为快速更改库代码,不一致的文档,几个示例等而感到惊讶。您还应该考虑记录和发布您的调查。要获得额外的功劳,请在移动浏览器上使用它。
49传言有传言称正在开发一个浏览器端的MVC框架,但我们还没有看到任何东西。
我认为骨干是模型库中最高级的。但事实证明,许多新用户会感到困惑,因此其他一些基于其概念的库也是如此。
根据我对YUI的经验,他们的Y.app将拥有最一致,最完整的api集和最好的文档。
答案 1 :(得分:0)
如果我们采取你的具体案例,我会强力选择Knockout.js
Knockout是为UI构建的,即您的数据模型可以绑定到HTML元素,然后模型中的任何更改都会相应地操作UI。
在您的情况下,联系人列表的添加/删除将由Knockout自动处理。您所需要的只是定义树视图中的更改如何处理(通过代码或HTML模板),Knockout将负责处理。
如果说,定义联系人列表的树视图仍然是完全不同的任务,您可能需要使用一些CSS / JS库。