0

我正在尝试使用 select2 jquery 插件,为了格式化结果,我找到了templateResult选项,可以这样使用:

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

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

它是如何工作的?

4

1 回答 1

2

templateResult传递给类似函数的对象参数templateSelection被称为数据对象。这些是<option>标签的内部表示,由 Select2 构建。


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

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

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

当 Select2 与 AJAX 等远程数据源一起使用时,预计会传回与此类似的数据对象(可能带有附加数据)。这些对象将被规范化(text并被id强制为字符串)并像往常一样传递给模板函数。


这些相同的数据对象是通过 、 和相关的 DOM 事件传回的select2:selectselect2:unselect这些事件允许您引用已选择或未选择的数据对象。

于 2015-05-27T18:49:21.467 回答