有没有办法在backbone.js中有条件的"添加"事件?

Sta*_*kis 3 javascript backbone.js

我正在使用backbone.js作为我的网络应用程序,它到目前为止工作半井.问题是,有时我需要将项目添加到集合中,并将它们放到页面顶部,其他时间放到底部.有时我需要它们来制作动画片,有时候不需要.有没有办法用backbone.js干净利落地做到这一点?将参数传递给"add"事件将是一个好方法(例如"prepend:true"),但这似乎不是一个选项......

谢谢!

Jul*_*ien 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);
  }
});
Run Code Online (Sandbox Code Playgroud)

唯一需要记住的是,如果你预先添加,请追加你可能想要完全复制Backbone.Collection.add并使用它.

您还可以依赖集合排序.将您的位置和动画属性添加到模型中,对位置进行排序并在集合上侦听"添加"事件以正确设置动画.