我试图使用select2 jquery插件,为了格式化我发现 templateResult 选项的结果,可以像这样使用:
$(".my-select").select2({
templateResult: function (obj) {
//templating
}
});
我想知道回调接受的对象的结构和方法作为参数,但我还没有找到任何关于它的文档。
它是如何运作的?
答案 0 :(得分:1)
传递到templateResult
和templateSelection
等函数的对象参数称为数据对象。这些是<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
被强制为字符串)并像通常那样传递给模板函数。
这些相同的数据对象是通过id
,select2:select
和相关DOM事件传回的内容,允许您引用已选择或未选中的数据对象。