选择对象作为回调参数

时间:2015-05-27 15:18:58

标签: jquery-select2 jquery-select2-4

我试图使用select2 jquery插件,为了格式化我发现 templateResult 选项的结果,可以像这样使用:

$(".my-select").select2({
    templateResult: function (obj) {
        //templating
    }
});

我想知道回调接受的对象的结构和方法作为参数,但我还没有找到任何关于它的文档。

它是如何运作的?

1 个答案:

答案 0 :(得分:1)

传递到templateResulttemplateSelection等函数的对象参数称为数据对象。这些是<option>标记的内部表示,由Select2构建。

如果<select>带有<option>和/或<optgroup>标记(没有特殊数据适配器),则该对象将具有以下自动生成的属性

  • id(可选):value标记上的<option>属性(如果没有value,则为文本)。这在<optgroup>代码中不存在,因为无法选择它们。
  • text<option>标记中包含的文字或label的{​​{1}}属性。
  • <optgroup>:表示element<option>标记的DOM元素,可用于检索元素的属性(使用jQuery或vanilla JavaScript)。
  • <optgroup>(可选):数据对象表示children时使用的任何嵌套<option>标记。

对于使用<optgroup>对象初始化的Select2实例,该对象应该是一个选项数组,每个数据对象将匹配通过数组传入的数据对象。此外,它们将具有data属性,该属性引用Select2用于管理它的自动生成的element

当Select2与远程数据源(如AJAX)一起使用时,预期会传回与此类似的数据对象(可能包含其他数据)。这些对象将被规范化(<option>text被强制为字符串)并像通常那样传递给模板函数。

这些相同的数据对象是通过idselect2:select和相关DOM事件传回的内容,允许您引用已选择或未选中的数据对象。