Select2 在创建为 Vue 组件时不可见

Posted

技术标签:

【中文标题】Select2 在创建为 Vue 组件时不可见【英文标题】:Select2 not visible when created as a Vue component 【发布时间】:2016-12-19 04:58:58 【问题描述】:

我为select2 jquery 组件创建了一个vue.js 组件 如果组件的模板只是原始选择,则组件的问题是选择是不可见(未显示):

<select v-select2="val">
</select>

(使用 chrome 检查器,我可以看到选择被 jquery 插件有效地转换为 select2,但尺寸为 1x1 px)

...问题是,如果我在模板上用 DIV 包装选择,一切正常:

<div>
  <select v-select2="val">
  </select>
</div>

我正在使用 vue 的指令 (v-select2) 将 select 转换为 select2

这里是完整代码https://jsfiddle.net/futuretelematics/tkL8zxby/

【问题讨论】:

我猜这个问题与组件模板有关,它使用 vue 的指令将 select 转换为 select2 如果未使用指令并且在创建组件时将select转换为select2,一切正常:jsfiddle.net/futuretelematics/a2kmhw64/2 【参考方案1】:

问题可能与select2 隐藏原始select,创建新span 并将其附加到原始@ 旁边这一事实有关。您最终会得到一个片段实例,如 Vue.js documentation 中所述,这是不鼓励的。

因此,建议在模板中始终使用单个根级别的普通元素。

【讨论】:

以上是关于Select2 在创建为 Vue 组件时不可见的主要内容,如果未能解决你的问题,请参考以下文章

以 Vue Js 作为指令的 Select2

带有 Tailwind css 的 Vue 过渡在淡出时不可见

为 Vue Select2 包装器组件使用动态 AJAX URL

更新 select2 组件的选项 - vue js

特定自定义 Vue 组件的方法

Vue.js select2 Wrapper 组件更改事件