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

时间:2011-03-15 10:29:21

标签: javascript backbone.js

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

谢谢!

1 个答案:

答案 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并使用它。

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