Backbone.js 模型和集合的最佳实践

Posted

技术标签:

【中文标题】Backbone.js 模型和集合的最佳实践【英文标题】:Best practice for backbone.js models and collections 【发布时间】:2014-09-06 19:07:12 【问题描述】:

在过去的几周里,我一直在学习backbone.js,并且即将开始在我正在编写的应用程序中使用它。我的问题是关于 Bootstrap 3 导航栏中模型和集合的用例。

在我的服务器端,我对用户进行身份验证,并根据他们的个人资料为他们分配一个角色(作者、编辑、管理员等)。然后,我构造一个包含用户角色的适当菜单结构的对象,并使用 Handlebars 将其传递给客户端。目的是让浏览器使用主干根据对象中的属性(键/值)构建 html 以呈现菜单。

我的想法是导航栏本身就是模型的集合(导航栏);导航栏上的每个下拉菜单或链接都是一个模型(navbarItem);每一个都包含一个菜单项的集合(navbarItemMembers),这些集合是每个单独的菜单项(navbarItemMember)的模型。然后,我可以针对每个 navbarItemMember 设置事件侦听器,以根据需要触发适当的路由或呈现操作。

那么,直奔主题……我是不是把事情复杂化了?包含模型的集合,每个模型都包含其他模型的集合,每个模型都映射到在主页上呈现 a 的视图。对我来说似乎很复杂,但从我(虽然有限)对backbone.js的理解来看,这似乎是正确的方法......?

非常感谢那些比我更有经验(战斗伤痕累累?!)的人的建议。谢谢。

【问题讨论】:

【参考方案1】:

当集合比普通模型更能为您提供一些好处时,请使用集合。好处可能是

    与 RESTful 服务交互时,您不仅需要获取数据列表,还需要单独获取/修改/添加/删除单个项目就是该列表 为列表中的每个项目定义单独的 Views,而不是使用单个 View 来遍历列表。

我认为基本的导航栏不会从其中任何一个中受益。如果您的导航栏除了链接之外还有一些超级花哨的元素,那么也许 #2 适用,但要保持简单,请使用带有单个视图/模板的单个模型

【讨论】:

以上是关于Backbone.js 模型和集合的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

您对主干.js 项目的最佳实践是啥?

Backbone.js:清除所有视图的最佳方法

Backbone.js 中的命名空间

Backbone.js 和 Backbone 实现的最佳 URL 结构

保存整个集合的最佳实践?

PySpark 将模型预测与未转换的数据对齐:最佳实践