Я пытаюсь добавить разные таблицы {Табличный вид или Просмотр диаграммы} в таблице. Каждый может иметь свои собственные данные. Я использую Backbone Marionette для этого и имею следующую строку кода. Но представление позиции не отображается.Как присоединить экземпляры ItemView во время выполнения к Backbone.marionette.Composite View
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 экземпляры к составным View. Используя это, я могу создавать разные представления, имеющие свои собственные данные. Я не использую сбор для композитного представления.
С уважением,
Это не будет работать, как я имеют разные взгляды на каждая модель. И я не нахожу никаких способов добавить экземпляр представления в Marionette.CollectionView во время выполнения. Мне кажется, что Backbone.marionette.Composite View или Marionette.CollectionView поддерживает только один вид просмотров. –
Вы можете попробовать с помощью метода buildItemView: [marionette docs] (https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.collectionview.md#collectionviews-builditemview) – Ingro
Я пытался, но был получение ошибки, в то время как usin buildItemView. Можете ли вы опубликовать фрагмент кода. –