Case:我在Vue.js
项目中使用PrimeVue
。在本例中,我有一个下拉列表,作为来自PrimeVue
的组件,它使用一个对象数组。下拉组件如下所示:
<template #position>
<Dropdown
class="multiselect-fullsize"
v-model="selectedFilter[index].pos"
:options="filterPositions"
optionLabel="name"
placeholder="Position" />
</template>
此下拉组件具有:options
属性,该属性引用以下数组:
filterPositions: [
{"name": "0", "value": "0"},
{"name": "1", "value": "1"},
{"name": "2", "value": "2"},
{"name": "3", "value": "3"},
{"name": "4", "value": "4"},
{"name": "5", "value": "5"},
{"name": "6", "value": "6"},
{"name": "7", "value": "7"},
{"name": "8", "value": "8"}
]
问题:在从PrimeVue
下拉列表中指定预选项的方法吗?
编辑:根据文档,没有属性来定义预选的项。因此,也许,如果有一个解决方案,它只能是JavaScript
。
发布于 2021-09-14 11:26:52
答案是:是的!下拉式PrimeVue文档中的描述有点混乱,至少对我来说是这样。问题是,提供v-model
还不够像我在v-model="selectedFilter[index].pos"
中所做的那样,我还必须定义optionValue
,在我的例子中定义optionValue="value"
,因为filterPositions
中的值有关键的value
。
看起来,如果设置了这个值,PrimeVue的下拉列表就能够检查v-model
是否与optionValue
匹配。如果没有,则将v-model
与整个filterPositions
项进行比较。例如:
无optionValue="value"
{"name": "4", "value": "4"} === 4
用optionValue="value"
4 === 4
所以在本例中,我的下拉组件必须如下所示:
<Dropdown
class="multiselect-fullsize"
v-model="selectedFilter[index].pos"
:options="filterPositions"
optionLabel="name"
optionValue="value"
placeholder="Position"
/>
发布于 2022-01-20 11:06:22
selectedFilter[index].pos = {"name": "4", "value": "4"}
发布于 2021-11-01 15:31:25
只需将占位符值设置为预选值即可。
<Dropdown
class="multiselect-fullsize"
v-model="selectedFilter"
:options="filterPositions"
optionLabel="name"
optionValue="value"
:placeholder="selectedFilter.value"
/>
https://stackoverflow.com/questions/68949860
复制相似问题