我实例化了两个集合:items和sections。
每个部分可以有多个项目,每个项目可以出现在多个部分中。
当我向一个部分添加一个项目时,我想获取该项目的哈希并将其保存到该部分的数组属性中。此数组属性用于确定每个部分中显示的项目。
所以,假设我有一个包含100个项目的ItemListModel,并且我有一个带有'items'属性的部分,其中包含数组[item3_id_hash,item27_id_hash,item59_id_hash]。当我显示SectionView时,我首先将这些哈希id映射到Items集合以获取这些对象,然后创建一个仅显示那些对象的ItemsView。
我遇到的问题是在创建和删除时识别这些项目,以便我可以获取它们的ID并在section.item属性数组中添加/删除它们。
通过设置一个名为parent的全局变量,我可以想到一个在添加时识别项目的hackish解决方案。但我想避免使用全局变量。
完全删除是另一回事。当用户单击X以删除视图中的项目时,我无法弄清楚如何识别父节的模型,或者至少识别其ID。
示例视图:
如果用户从视图中删除Item_2,我如何获得Section_1.model.get('id')以便我可以获取section_1对象,然后从'items'数组属性中删除Item_2的'id'。 Section_1
我能想到的唯一解决方案是在为Section_1绘制ItemsView时将Section_1的'id'传递给HTML视图。这是hackish和脆弱所以我试图避免它。
FYI:SectionListView实例化一个或多个SectionsViews,每个SectionsViews实例化一个ItemListView,它实例化一个或多个ItemViews
答案 0 :(得分:1)
你应该总是回到模特身上。如果要删除项目,请将其从模型列表中删除,并让不同的视图侦听删除事件。
因此,您的部分正在观察List remove事件并相应地执行操作(删除页面上的元素或完全重新呈现它)。
在大多数情况下,模型和事件(或者路由)应该首选粘合代码。
我希望我理解你的问题。