Vue Multi-select 未显示所有选项
Vue Multi-select not showing all the options
我在我的 Vue 组件中使用 https://vue-multiselect.js.org。我正在使用 AJAX 更新 select 列表选项,我在检查器中看到有 10 个值。
但是当我实际点击 multiselect 列表时,我只看到了这些项目的一个子集,我不明白为什么......这是我的 multi-select props/events:
<multiselect
v-model="organization"
:allow-empty="true"
:loading="loading"
:options="organizationSearch"
:preserve-search="true"
@search-change="searchOrganizations"
@select="organizationSelected"
@remove="organizationDeselected"
placeholder="Search Organizations"
label="name"
track-by="id"
class="multiselect my-3"
>
</multiselect>
这取决于您options
的结构。
它表明它们是对象,而它们可能应该是文字值。
如果您在检查器中展开 options
数组可能会更有帮助,这样我们就可以看到对象中呈现的属性。
track-by
is used to identify the option within the options list thus it’s value has to be unique.
您设置了 track-by="id"
和 label="name"
,因此您的 options
数组应该如下所示:
options: [
{ id: 1, name: 'Option #1' },
{ id: 2, name: 'Option #2' },
{ id: 3, name: 'Option #3' },
],
确保 options
数组中的所有项目都有一个 id
属性 并且它对所有项目都是唯一的,因为具有相同 [=17= 的项目] 不会出现在多选列表中。
我明白了。我深入研究了组件代码,发现所有选项都在 options
属性中,但在 filteredOptions
计算字段中只有 3 个。我加了
:internal-search="false"
进入我的组件,然后修复它。
我认为这里的最终问题与内部过滤和我通过 AJAX 进行的选项动态更新之间的冲突有关。
下面是实际组件定义中filteredOptions的定义。
我在我的 Vue 组件中使用 https://vue-multiselect.js.org。我正在使用 AJAX 更新 select 列表选项,我在检查器中看到有 10 个值。
但是当我实际点击 multiselect 列表时,我只看到了这些项目的一个子集,我不明白为什么......这是我的 multi-select props/events:
<multiselect
v-model="organization"
:allow-empty="true"
:loading="loading"
:options="organizationSearch"
:preserve-search="true"
@search-change="searchOrganizations"
@select="organizationSelected"
@remove="organizationDeselected"
placeholder="Search Organizations"
label="name"
track-by="id"
class="multiselect my-3"
>
</multiselect>
这取决于您options
的结构。
它表明它们是对象,而它们可能应该是文字值。
如果您在检查器中展开 options
数组可能会更有帮助,这样我们就可以看到对象中呈现的属性。
track-by
is used to identify the option within the options list thus it’s value has to be unique.
您设置了 track-by="id"
和 label="name"
,因此您的 options
数组应该如下所示:
options: [
{ id: 1, name: 'Option #1' },
{ id: 2, name: 'Option #2' },
{ id: 3, name: 'Option #3' },
],
确保 options
数组中的所有项目都有一个 id
属性 并且它对所有项目都是唯一的,因为具有相同 [=17= 的项目] 不会出现在多选列表中。
我明白了。我深入研究了组件代码,发现所有选项都在 options
属性中,但在 filteredOptions
计算字段中只有 3 个。我加了
:internal-search="false"
进入我的组件,然后修复它。
我认为这里的最终问题与内部过滤和我通过 AJAX 进行的选项动态更新之间的冲突有关。
下面是实际组件定义中filteredOptions的定义。