我正在尝试在表格中添加不同的视图 {Tabular View or Chart View}。每个都可以有自己的数据。我为此使用 Backbone Marionette 并具有以下代码行。但是项目视图不呈现。
html
<script id="grid-template" type="text/template">
 <div>
     Data is displayed using Tabular View and Chart View !
    </div>
</script>
<script id="TabularViewTemplate" type="text/template">
    <table><tr><td>Value1</td><td>Value2</td></tr>         </table>
</script>
<script id="ChartTemplate" type="text/template">
    <table><tr><td>Value1</td><td>Value2</td></tr>         </table>
</script>
<div id="grid">
</div>
JS
var ANBaseModel= Backbone.Model.extend({
    name:"",
    type:""
});
  var SSANModel= ANBaseModel.extend({
      type:"SS"
});  
var BaseView=Backbone.Marionette.ItemView.extend({
template: "#row-template",
    tagName: "tr"  ,
    model:SSANModel
});
// A Spreadsheet View
var SSView= BaseView.extend({
    render: function(){
    alert(this.model.type);
    if(this.model.type=="SS")
    alert("Spreadsheet");
        else if(this.model.type=="ChartAN")
                alert("Chart");
    }  
});
// A Chart View
var ChartView = BaseView.extend({
    render: function(){
    alert(this.model.type);
    if(this.model.type=="SS")
    alert("Spreadsheet");
        else if(this.model.type=="ChartAN")
                alert("Chart");
    }  
});
// The grid view
var GridView = Backbone.Marionette.CompositeView.extend({
    tagName: "table",
    template: "#grid-template",
});
var SS= new SSANModel();
alert(SS.type);
var objSSView=new SSView ({model:SS,template:"TabularViewTemplate"});
var gridView = new GridView({
    itemView: objSSView
});
gridView.render();
console.log(gridView.el);
$("#grid").html(gridView.el);
JsFiddle:http: //jsfiddle.net/Irfanmunir/ABdFj/
我如何将 ItemView 实例附加到复合视图。使用它我可以创建具有自己数据的不同视图。我没有将集合用于复合视图。
问候,