【问题标题】:Select2 with Backbone.Marionette: Pre-selected values not hiddenSelect2 with Backbone.Marionette:未隐藏预选值
【发布时间】: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


【解决方案1】:

Here 是您的问题的工作示例。

只有一条与您的代码相关的注释。这是一个很好的做法,当访问视图元素时,使用this.$el.find('selector') 引用而不是通过jquery $('selector') 查询它。

你可以像this.$('selector')这样更短。

【讨论】:

    猜你喜欢
    • 2019-02-10
    • 2020-03-09
    • 1970-01-01
    • 2017-06-02
    • 2014-09-23
    • 2014-04-24
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    相关资源
    最近更新 更多