Я использую CompositeView для отображения тега select, а опции отображаются с помощью коллекции CompositeView.Получение выбранного параметра при использовании Marionette CompositeView с тегом select
OptionView = Marionette.ItemView.extend({
template: ...
tagName: "option",
}
});
SelectView = Marionette.CompositeView.extend({
template: ...
childView: OptionView,
childViewContainer: "select",
triggers: {
"change @ui.select": "do:something"
},
ui:{
select: "[ui-select]"
},
});
Странная вещь, что, когда я пытаюсь получить выбранный вариант из LayoutView, который держит SelectView, я получаю противоречивое поведение:
EditActivities.LayoutView = Marionette.LayoutView.extend({
template: ...
regions: ...
onChildviewDoSomething: function(view){
console.log(view.ui.select.val());
}
})
При изменении значения избранного тега в браузере, иногда то, что регистрируется на консоли, является внутренним HTML тега параметра, и иногда оно регистрирует значение. Вот как выглядит мой шаблон OptionView:
<option value="<%=id%>"><%= name %></option>
Я немного в тупике по непоследовательному поведению. Идеи?
Это звучит странно, можно привести пример на plnkr, jsfiddle или подобного, воспроизводящий его? Я не могу сразу увидеть что-то не так с кодом, который вы опубликовали. – ivarni