首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从vue-select向另一个对象发送数据

从vue-select向另一个对象发送数据
EN

Stack Overflow用户
提问于 2021-10-13 07:39:29
回答 2查看 37关注 0票数 0

我使用vue-select在我的vue应用程序中使用select进行搜索。例如,当我在vue-select中点击一个选项时,它将在另一个对象中发送给我,并在选择器之后消失。

我怎么能这么做呢?我做过这样的事,但这并不好

代码语言:javascript
复制
Selector
 <v-select 
  v-model="value" 
  :options="dataTags" 
  multiple 
  @click="onAdd()"
 placeholder="Select your data">
</v-select>

Js

代码语言:javascript
复制
<script>
export default {
    props: {
        dataTags: {
            type: Object,
            required: true
        }
    },

    data() {
       return {
           value: '',
           Items: {
               selected_items: []
           }
       }
    }, 

    methods: {
        onAdd() {
            this.Items.selected_items.push(this.value);
            this.value = '';
   
        }
    }
}
</script>

而数据标签只是这些标签的一个数组,没有什么特别的。它是基于id和标签的。那么,如何继续将所选项目发送到新对象,并使它们从选择器中消失呢?我能用某种方式把它们藏起来吗?

EN

回答 2

Stack Overflow用户

发布于 2021-10-13 07:47:55

vue-select会发出一个名为input的事件,该事件可以为您提供选定的值。请参阅文档的"Event: input“https://vue-select.org/guide/values.html#getting-and-setting下的这一节

它应该是这样的:

代码语言:javascript
复制
 <v-select 
  v-model="value" 
  :options="dataTags" 
  multiple 
  @input="onAdd"
 placeholder="Select your data">
</v-select>
票数 0
EN

Stack Overflow用户

发布于 2021-10-13 08:22:07

也许可以尝试使用计算属性过滤选项:

代码语言:javascript
复制
Vue.component('v-select', VueSelect.VueSelect)

new Vue({
  el: '#app',
  data: {
    currentlySelected: null,
    options: ['aaaaa', 'bbbbb', 'ccccc'],
    usedOptions: []
  },
  methods: {
    select(value) {
      this.usedOptions.push(value)
      this.currentlySelected = null
    }
  },
  computed: {
    filteredOptions() {
      return this.options.filter(option => !this.usedOptions.includes(option))
    }
  }
})
代码语言:javascript
复制
#app {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 2rem;
}
代码语言:javascript
复制
<link href="https://unpkg.com/vue-select/dist/vue-select.css" rel="stylesheet"/>
<script src="https://unpkg.com/vue-select@3.13.2/dist/vue-select.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="app">
  <v-select v-model="currentlySelected" :options="filteredOptions" @input="select"></v-select>
  already used: {{usedOptions}}
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69551474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档