【发布时间】:2014-10-07 17:25:36
【问题描述】:
我正在尝试将 Select2 集成到 Marionette ItemView 中。
问题:我想用已经选择的值初始化 Select2,但下拉列表中仍然可以使用选择的元素。如果我清除该框,然后手动从下拉列表中重新选择项目,这些项目就会从下拉列表中正确删除。
Javascript:
View.Profile = Marionette.ItemView.extend({
template: profileTpl,
onShow: function(){
var $select = this.$("#categories"); // grabs the element for Select2
$select.select2(); // build the Select2 element
$select.select2("val", ["american", "french", "italian"]); // select values
}
HTML:
<select id="categories" data-placeholder="Add a category..." multiple class="form-control" tabindex="8">
<option></option>
<option value="american">American</option>
<option value="french">French</option>
<option value="italian">Italian</option>
<option value="indian">Indian</option>
</select>
我可以毫无问题地在单个 html 示例页面上执行此操作。
使用Marionette的onShow,“标签”元素正确显示在Select2框中,但是当我点击该框选择不同的选项时,所有选项仍然可用。
我怀疑某些事件未正确附加到 Select2 元素,因为我在 onShow 事件中附加 Select2 元素的方式。
【问题讨论】:
-
我认为这与 initSelection 有关,但我不确定,因为它只是一个 html 页面,您可以将 jsfiddle 放在一起来显示您遇到的问题吗?
标签: javascript marionette jquery-select2 backbone-views backbone-events