【问题标题】:selection object as callback parameter选择对象作为回调参数
【发布时间】:2015-05-27 15:18:57
【问题描述】:

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

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

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

它是如何工作的?

【问题讨论】:

    标签: jquery-select2 jquery-select2-4


    【解决方案1】:

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


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

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

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

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


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2014-09-16
      • 1970-01-01
      • 2019-01-30
      相关资源
      最近更新 更多