我有一个CollectionView
class MyCollectionView extends Backbone.Marionette.CollectionView
itemView: MyItemView
itemViewOptions: ->
{
indexInCollection: ?
}
Run Code Online (Sandbox Code Playgroud)
我希望MyItemView知道它的模型所在的集合中的哪个索引.
我想,在MyItemView中,我可以通过它找到它
@model.collection.indexOf(@model)
Run Code Online (Sandbox Code Playgroud)
但是有没有办法使用一些内部的Marionette机制将它从我的Marionette CollectionView直接传递到MyItemView中?这个指数已经暴露在某个地方吗?
Der*_*ley 12
的itemViewOptions,设置为函数时,接收到一个item或model参数.用它来查找索引:
class MyCollectionView extends Backbone.Marionette.CollectionView
itemView: MyItemView
itemViewOptions: (model) ->
{
indexInCollection: this.collection.indexOf(model)
}
Run Code Online (Sandbox Code Playgroud)
从Marionette 2.0.0开始,您可以使用childViewOptions函数:
var CollectionView = Marionette.CollectionView.extend({
childViewOptions: function(model, index) {
// do some calculations based on the model
return {
foo: "bar",
childIndex: index
}
}
});
Run Code Online (Sandbox Code Playgroud)
正如childViewOptions的Marionette文档中所述
| 归档时间: |
|
| 查看次数: |
5030 次 |
| 最近记录: |