javascript - Backbone Marionette 不同的复合 View

标签 javascript backbone.js marionette

是否有可能在 Marionette 中有一个复合 View ,里面有不同的项目 View ?例如:

var myCompositeView = Backbone.Marionette.CompositeView.extend({
    template: Handlebars.compile(myTemplate),
    itemView: myView, // I want different views, not just myView
    initialize: function(){
        this.collection = this.model.views;
    },
    appendHtml: function(collectionView, itemView){
        collectionView.$('.container').append(itemView.el);
    }

});

基本上,根据集合中的模型,我想创建某个 View 。

最佳答案

您可以使用 getItemView 方法完成此操作:

var VTbody = Backbone.Marionette.CompositeView.extend({
    template: "#emptyTemplate",
    tagName:"tbody",
    //itemView:VTr,  /*No need to specify item View */
    getItemView: function(item){
      if(item.get("type")=="details") {
            return  VTrDetails
        } else  {
            return VTr
        }
    }
});

这里的item表示集合中的模型。 希望这会有所帮助。

关于javascript - Backbone Marionette 不同的复合 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18684567/

相关文章:

javascript - 如何使用 Ajax .serialize() 数据将表单发布到 PHP?

javascript - 为什么没有标记 ('#content' )渲染得很好

javascript - Backbone Marionette 可以为所有模块定义添加参数

events - Backbone : how to listen events on el container

javascript - 重新启动JavaScript中的振荡器

javascript - 多个同时发生的事件javascript

backbone.js - Backbone 1.1.0 View -阅读选项

backbone.js - Backbone Marionette renderModel() 不适用于复合 View

javascript - Backbone.JS 或 Marionette.JS 路由,无需哈希更改依赖

javascript - Marionette 可以管理路线吗?