vue.js - Vue-Multiselect Multiple Select 能够重新选择选中的项目

标签 vue.js vuejs3 vue-multiselect

使用 Vue-Multiselect启用了多项选择的库,是否可以重新选择所选项目?假设有两个选项产品 1 和产品 2:

options: [
    { name: 'Product 1', value: 'product_1' },
    { name: 'Product 2', value: 'product_2' }
]

然后我将多次选择产品 1,结果将是:

[
  {
    "name": "Product 1",
    "value": "product_1"
  },
  {
    "name": "Product 1",
    "value": "product_1"
  }
]

它会是这样的:

enter image description here

如何实现这种行为?

附言 我愿意将其他 Vue 3 选择库用于多个项目和所选项目的重复。

最佳答案

作为@mamdasan说,要实现此要求,您可以监听在 v-model 值更改后发出的 @input 事件。要获得重复的选定选项,您可以维护一个单独的数组并在监听 @input 事件时清空 v-model 变量。

注意 : 在处理此要求时,我面临一个挑战,即当 v-model 值变空时,在选择时显示筹码。

演示:

var app = new Vue({
  el: '#app',
  components: { Multiselect: window.VueMultiselect.default },
  data () {
    return {
      value: [],
      selectedItems: [],
      options: [
                 {
                   "city": "San Martin"
                 },
                 {
                   "city": "San Nicolas"
                 },
                 {
                   "city": "San Francisco"
                 }
               ]
    }
  },
  methods: {
    onSelect() {
  this.selectedItems.push(this.value[0]);
      this.value = [];
    }
  }
})
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script src="https://unpkg.com/vue-multiselect@2.1.0"></script>
  <link rel="stylesheet" href="https://unpkg.com/vue-multiselect@2.1.0/dist/vue-multiselect.min.css">
  <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
<div id="app">
<div>
  <multiselect
    v-model="value"
    placeholder="Select City"
    label="city"
    :options="options"
    :multiple="true"
    :close-on-select="false"
    @input="onSelect"
  >
  </multiselect>
</div>
<pre class="language-json"><code>{{ selectedItems }}</code></pre>
</div>

关于vue.js - Vue-Multiselect Multiple Select 能够重新选择选中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72342909/

相关文章:

javascript - 如果模型被覆盖,Vue.js 指令 v-html 不会更新

javascript - 单元测试依赖全局事件总线的 Vue 组件

javascript - 无法使用 Pinia 调用 API 内的存储

javascript - Vue : how to merge two reactive objects without loosing reactivity

vue.js - Vue-MultiSelect 复选框绑定(bind)

vue.js - 如果我仅使用数据属性来检查它是否已定义,计算属性是否会依赖于数据属性?

vue.js - Vue路由器导航或滚动到 anchor (# anchor )

javascript - 多个模板插槽的相同插槽内容

javascript - Vue-Multiselect - 取消选择预加载值组不起作用

vue.js - 在 Vue 组件中使用 @use "sass:math"