如何使用 vue-multiselect 进行动态多重下拉 [英] How to have dynamic multiple dropdown with vue-multiselect

查看:20
本文介绍了如何使用 vue-multiselect 进行动态多重下拉的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道通过更改数据并自动加载特定组件的 vue 是否可以实现我的目标

以下是我的期望(在 jquery 中尝试过)

var data = {country:{type:'dropdown',values:['india','usa']},money:{类型:'输入',占位符:'输入金额'},印度:['班加罗尔'],美国:['硅谷']}函数 getDropTemplate(dropDownList){var dropDownStr = '';for(var i = 0; i < dropDownList.length; i++){dropDownStr += `<option value="${dropDownList[i]}">${dropDownList[i]}</option>`}return `<select class="mainCountry">${dropDownStr}</select>`;}函数 getInputTemplate(inputObj){return `<input type="text" placeholder="${inputObj.placeholder}"/>`}$(函数(){$('#dropdown').on('change',function(){var 值 = $(this).val(), 模板 = '';if(data[value].type == '下拉菜单'){模板 += getDropTemplate(data[value].values)}别的{模板 += getInputTemplate(data[value])}$('#selectedResults').html(模板);});$(document).on('change','.mainCountry',function(){var 结果 = 数据[$(this).val()]$('#subResults').html(getDropTemplate(result));});});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><select id="下拉列表"><option value="">--select--</option><option value="money">Money</option><option value="country">Country</option></选择><div id="selectedResults">

<div id="subResults">

从上面的代码片段中,您可以通过选择 country ->印度 ->班加罗尔country ->美国 ->硅谷

我想用 vue-multiselect

复制同样的东西

以下是我在 vue 中尝试过的

var app = new Vue({el: '#app',组件:{ 多选:window.VueMultiselect.default },数据 () {返回 {价值: [],//data:{country:{type:'dropdown',values:['india','usa']},money:{type:'input',placeholder:'enter amount'},india:['Bengaluru'],美国:['硅谷']}选项:[{name:'money'},{name:'country'}]}}})

 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"><;/脚本><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="应用程序"><多选v-model="值"跟踪= =名称":options="选项"标签=名称":multiple="假":taggable="假"></多选>

解决方案

您可以根据 category.name 有条件地渲染 inputmultiselects>.

例如,当 category.nameMoney 时,显示 :