2016-07-28 13 views
1

Я хочу создать элемент управления mariontte, который состоит из трех основных элементов управления. Сначала это Date Picker, второй - числовой степпер, а третий - Date Picker. Идея заключается в том, что первая дата - это начальная дата, а числовой шаговый добавляет дни, и результат показан во втором сборщике дат. Во всяком случае, я не знаю, как создать представление Marionette, когда не все дочерние элементы одинаковы. Как мне подойти к этому?управление марионеткой из основных элементов управления

ответ

2

Я думаю, что вы можете создать compositeview (или даже макет может работать), имеющие три див и сделать три различные itemviews в три диве явного добавления эля из itemViews в дивах

например если следующий ваш шаблон compositeview

<div id="first-datepicker"></div> 
<div id="numeric-stepper"></div> 
<div id="second-datepicker"></div> 

Затем в compositeView JS вы можете сделать itemviews следующим

ui:{ 
    firstDatepicker: "#first-datepicker", 
    numericStepper: "#numeric-stepper", 
    secondDatepicker: "#second-datepicker" 
}, 
onRender: function(){ 
    this.ui.firstDatepicker.html(new DatePickerView().render().el); 
    this.ui.numericStepper.html(new NumericStepperView().render().el); 
    this.ui.firstDatepicker.html(new DatePickerView().render().el); 
} 

Но в случае схемы не нужно явно отрендерить вид, вы можете просто использовать метод показа макета как

regions:{ 
    firstDatepickerRegion: "#first-datepicker", 
    numericStepperRegion: "#numeric-stepper", 
    secondDatepickerRegion: "#second-datepicker" 
}, 
onRender: function(){ 
    this.firstDatepickerRegion.show(new DatePickerView()); 
    this.numericStepperRegion.show(new NumericStepperView()); 
    this.secondDatepickerRegion.show(new DatePickerView()); 
}