javascript - 如何覆盖 CompositeView 渲染方法?

标签 javascript backbone.js marionette

我只需要渲染获取的集合的第一个元素。

ItemView = Backbone.Marionette.ItemView.extend({
    template:  "#item"
});

ItemsEmptyView = Backbone.Marionette.ItemView.extend({
    template: "#items_empty"
});

ItemsView = Backbone.Marionette.CompositeView.extend({
    template: "#items",
    itemView: ItemView,
    emptyView: ItemEmptyView
});

我怎样才能做到这一点?我试图覆盖 render() 方法,或 onBeforeRender() 没有任何帮助。

最佳答案

如果您确实需要这样做,请使用 appendHtml()

appendHtml: function(collectionView, itemView, index){
    if ( index === 0 )
        collectionView.$el.append(itemView.el);
}

https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.compositeview.md#compositeviews-appendhtml

关于javascript - 如何覆盖 CompositeView 渲染方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18788430/

相关文章:

javascript - 如何对不同属性执行自定义主干排序?

backbone.js - 如何使用 Backbone Events/Vent 更改 Backbone 动态 URL?

javascript - Backbone Marionette 获取区域 View

javascript - Backbone Marionette - 如何渲染 CompositeView->CollectionView->ItemView

javascript - jQuery - 如果表 tr 中有 4 个 td 做某事

javascript - 如何将动态术语/排序添加到以下排序函数?

Javascript:跟踪自定义事件

javascript - 将 Backbone.Layout 定义为 require js 模块?

javascript - R.head 的类型怎么可能是 'chain a'

javascript - 使用 jQuery 在 Rails 中可点击 Div?