我正在使用backbone.js作为我的网络应用程序,它到目前为止工作半井。问题是,有时我需要将项目添加到集合中,并将它们放到页面顶部,其他时间放到底部。有时我需要它们来制作动画片,有时候不需要。有没有办法用backbone.js干净利落地做到这一点?将参数传递给“add”事件将是一个好方法(例如“prepend:true”),但这似乎不是一个选项......
谢谢!
答案 0 :(得分:8)
扩展Backbone.Collection并覆盖add函数:
PositionCollection = Backbone.Collection.extend ({
add: function( model, options ){
// do your stuff
// call the real add
Backbone.Collection.prototype.add.call(this, model);
}
});
唯一需要记住的是,如果你在前置,附加你可能想要完全复制Backbone.Collection.add并使用它。
您还可以依赖集合排序。将您的位置和动画属性添加到模型中,对位置进行排序并在集合上侦听“添加”事件以对其进行正确的动画处理。