我正在尝试使用 select2 jquery 插件,为了格式化结果,我找到了templateResult选项,可以这样使用:
$(".my-select").select2({
templateResult: function (obj) {
//templating
}
});
我想知道回调作为参数接受的那个对象的结构和方法,但我找不到任何关于它的文档。
它是如何工作的?
我正在尝试使用 select2 jquery 插件,为了格式化结果,我找到了templateResult选项,可以这样使用:
$(".my-select").select2({
templateResult: function (obj) {
//templating
}
});
我想知道回调作为参数接受的那个对象的结构和方法,但我找不到任何关于它的文档。
它是如何工作的?
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:select
,select2:unselect
这些事件允许您引用已选择或未选择的数据对象。