【发布时间】:2011-05-11 20:47:37
【问题描述】:
我有一个想要使用 Backbone.js 的网络应用程序。我有一个用户不会直接编辑的常见“项目”列表。这将基本上作为一个菜单显示在屏幕左侧。当用户选择一个项目时,将生成一个“项目实例”,他们将对其进行自定义。
我只是想知道这个项目/模板的静态列表是否应该由 Backbone.js 处理,或者是否应该只是硬编码。对列表使用 Backbone 集合/模型的价值在于,每个项目将具有另一个 Backbone.Model 属性,当从列表中选择该项目时,该属性将被实例化。例如HTMLImageChoice 项在被选中时将导致 HTMLImage 被实例化。
我很难找到易于理解的 Backbone.js 示例,这些示例不是很做作。
【问题讨论】:
-
听起来你确实想将这些菜单项表示为 Backbone.collection。您能否提供更多关于物品中的内容以及您对它们进行了何种定制的信息,以便我们对其进行模拟?
-
它有点像菜单...它是一个图形/所见即所得的网站构建器,菜单是 HTML 元素的列表。当我从菜单中选择一个时,它的类型很重要,该类型将决定我实例化哪个 Backbone.Model 并允许用户自定义。在这里使用集合/模型似乎是合理的唯一原因是因为我认为它可能比硬编码 30 多个元素然后进行字符串比较以确定要实例化的模型更自然。
-
为了对此进行扩展,我打算将用户选择作为模型的每个 HTML 元素项。每个模型的一个属性是要实例化的实例类。例如。当用户选择一个菜单项时,我会在创建它的实例时执行“new menuItem.get('classToInstantiate')”。