我正在寻找一种优雅的方式在添加模型时将模型添加到集合中。在 Backbone 源代码中,有一种unshift
方法可以做到这一点,但是add
将模型添加到集合中的方法过于复杂,无法简单地扩展。我正在构建一个依赖于照片和推文的幻灯片放映,并且应该始终在顶部显示最新的,最后显示最旧的。简化我的问题:
初始化应用,API调用返回:
apple, banana, lemon
所以,苹果是最新的幻灯片。该集合是建立的:
apple, banana, lemon
间隔后,API调用检查是否有更新的水果,结果:
orange
集合追加模型:
(apple, banana, lemon), orange
那不是我想要的。橙子是最新的水果,苹果紧随其后。但是,在这种情况下,我可以在添加之前反转我的初始集合,并在绘制幻灯片时重新反转。现在,事情变得更复杂了(我添加了括号来澄清):
API 调用检查更多水果:
pineapple, kiwi
Collection 一一追加新模型:
((apple, banana, lemon), orange), pineapple, kiwi
所以现在从新到旧,我的收藏是这样的:
((not so old, older, oldest), pretty new), brand new, new
这绝对没有意义:)
当然,更改 API 响应可以让我的生活更轻松,但目前这不是一个选择;另外,这并不重要,因为响应中的项目顺序是新的-> 旧的,这对我来说很好。
我找不到一个开箱即用的解决方案,我不想通过将部分主干源克隆到unshift
新模型来使事情变得过于复杂。建议?谢谢!