【发布时间】:2011-03-15 10:29:21
【问题描述】:
我在我的网络应用程序中使用了主干.js,到目前为止它运行良好。问题是有时我需要将项目添加到集合中并让它们进入页面顶部,而其他时候则进入底部。有时我需要他们制作动画,有时不需要。有没有办法用backbone.js干净地做到这一点?将参数传递给“add”事件将是一个好方法(例如“prepend: true”),但这似乎不是一个选项......
谢谢!
【问题讨论】:
我在我的网络应用程序中使用了主干.js,到目前为止它运行良好。问题是有时我需要将项目添加到集合中并让它们进入页面顶部,而其他时候则进入底部。有时我需要他们制作动画,有时不需要。有没有办法用backbone.js干净地做到这一点?将参数传递给“add”事件将是一个好方法(例如“prepend: true”),但这似乎不是一个选项......
谢谢!
【问题讨论】:
扩展 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 并使用它。
您也可以依赖集合排序。将您的位置和动画属性添加到模型中,对位置进行排序并监听集合上的“添加”事件以正确设置动画。
【讨论】: