首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >V-on:更改不适用于vue-multiselect

V-on:更改不适用于vue-multiselect
EN

Stack Overflow用户
提问于 2018-03-30 11:58:37
回答 2查看 17.3K关注 0票数 5

我在我的vue.js项目中使用了vue-multiselect组件,我使用v-on指令在change事件上执行一个函数,

代码语言:javascript
复制
<multiselect v-model="selected" :options="projects" :searchable="false" :custom-label="customLabel" track-by="name" v-on:change="executeLoader">
<template slot="customLabel" slot-scope="{ customLabel }"><strong>{{ option.name }}</strong></template>   
</multiselect>

我在这里有完整的示例代码:https://codesandbox.io/s/yjjon0vzxj

v-on:change正在使用<select>组件,但它使用vue-multiselect停止了工作!我试着用v-on:click="executeLoader",但也不起作用..

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-30 12:07:23

@click不会使用vue multiselect触发方法executeLoader。您可以使用@input -类似于v-on:change@close@select,如下例所示:

代码语言:javascript
复制
<multiselect placeholder="Pick at least one" select-label="Enter doesn’t work here!" :value="value" :options="options" :multiple="true" :searchable="true" :allow-empty="false" :hide-selected="true" :max-height="150" :max="3" :disabled="isDisabled" :block-keys="['Tab', 'Enter']" @input="onChange" @close="onTouch" @select="onSelect"></multiselect>

在你的情况下,我会试试@input="executeLoader"

票数 14
EN

Stack Overflow用户

发布于 2018-03-30 12:09:54

在vue-multiselect中,因为它是一个组件,所以您不能将它视为一个简单的<select>元素。

在组件中,当您希望它们像其他html标记一样表现和“监听”单击事件时,您应该添加一个名为:.native的事件修饰符。

因此,您可以对任何组件执行以下操作:

代码语言:javascript
复制
<... @click.native="executeLoader" />

但我想这不是你想要的。当您添加越来越多的标签时,或者简而言之:当所选项目增加时,您希望触发一个函数。

为此,vue-multiselect公开了@input事件,因此您可以使用以下命令来处理:

代码语言:javascript
复制
<... @input="executeLoader" />

现在只需调用executeLoader并接受如下参数:

代码语言:javascript
复制
methods: {
  executeLoader(selectedItems) {} 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49568169

复制
相关文章

相似问题

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