对于我的设置,我有两个子视图(在同一个视图上)渲染相同类型的模型,但是每个视图使用完全不同的模型集(一个显示最新的模型,另一个显示在4个子视图中每个类别)。在Collection上使用filter()不起作用,因为每个Category需要4个帖子,大约20个新帖子。
由于它们都在同一页面上,当我在一个视图上更新模型时,我希望在第二个视图上更新相同的模型。
我尝试了几件事:
- 在mainView上使用一个Collection,在mainView中获取并将这个公共Collection提供给subViews。只要两个子视图都使用相同的模型集,我就不会这样做。
- 在每个子视图中使用自定义事件和集合。更新模型时,使用修改后的模型发送全局Backbone.trigger,在另一侧捕获它并根据需要执行操作。这也有效,但实现效果并不高或不高效。让所有的模型都倾听变化,只有在他们的id是正确的时才采取行动似乎适得其反。
- 在mainView上使用一个Collection,在每个subView上使用一个,主意是mainView上的Collection包含所有项目,并根据需要将它们分发到每个subView的Collection。这可以工作但是获取数据,在主Collection和其他subView Collection中复制是一种痛苦,需要我在每个subView内的mainView上持有一个实例,我不想这样做,因为每个subView都是“组件“可以在多个地方使用。
醇>
人们在网上似乎大部分时间都在做事件,但我想知道是否有人有更好的想法。
非常感谢。