使用VueJs、Cordava和Javascript动态插入组件

使用VueJs、Cordava和Javascript动态插入组件,javascript,cordova,dynamic,Javascript,Cordova,Dynamic,使用vuejs和Cordova,我无法动态插入/创建新的v-select组件。 我的目标是在单击“添加”按钮时复制并插入现有v-select的副本 <v-select :items="exerciceList" v-model="selectedExercice" label="pick an exercise" v-validate="'required'" data-vv-name="select" required> &l

使用vuejs和Cordova,我无法动态插入/创建新的v-select组件。
我的目标是在单击“添加”按钮时复制并插入现有v-select的副本

<v-select
    :items="exerciceList" 
    v-model="selectedExercice" 
    label="pick an exercise" 
    v-validate="'required'" 
    data-vv-name="select"
    required>
</v-select>
</div>
<div id="selectsContainer"
  v-for="(item, idx) in items">
    <v-select
    id="item.id" <!-- or use idx -->
    style="item.style" <!-- or use any string statement -->
    ...etc
    >
</div>
<v-btn flat icon id="btn" v-on:click="newExercice()">

...{
     components: [componentName],
     data: return {
       items: 0,
       ...
     }
     methods: {
       newExercice: ()=>{
         this.items++
       }
     }
...}
我的页面代码为:

<v-select
    :items="exerciceList" 
    v-model="selectedExercice" 
    label="pick an exercise" 
    v-validate="'required'" 
    data-vv-name="select"
    required>
</v-select>
</div>
<div id="selectsContainer"></div>
<v-btn flat icon id="btn" v-on:click="newExercice()">
id为世博会代码的项目:

<v-select
  id="exo"
  style="display: none;"
  :items="exerciceList"
  v-model="selectedExercice"
  label="Choisissez un exercice"
  v-validate="'required'"
  data-vv-name="select"
  required>


感谢您帮助我改进我的实现。

Michael S所说的是正确的,您不想直接操纵DOM,这会导致许多问题。也许最好的解决方案(不管怎样快速简单)是导入额外的v-select组件,然后使用简单列表动态添加它,或者在本例中使用整数增加

如果您想使用它进行更多的定制,您可以创建一个对象,并从中动态添加和删除样式、属性等,与此选项的工作方式相同,但可以将该项转换为一个对象数组。然后,在单击按钮时继续向其添加对象

<v-select
    :items="exerciceList" 
    v-model="selectedExercice" 
    label="pick an exercise" 
    v-validate="'required'" 
    data-vv-name="select"
    required>
</v-select>
</div>
<div id="selectsContainer"
  v-for="(item, idx) in items">
    <v-select
    id="item.id" <!-- or use idx -->
    style="item.style" <!-- or use any string statement -->
    ...etc
    >
</div>
<v-btn flat icon id="btn" v-on:click="newExercice()">

...{
     components: [componentName],
     data: return {
       items: 0,
       ...
     }
     methods: {
       newExercice: ()=>{
         this.items++
       }
     }
...}

style=“item.style”
等
...{
组件:[组件名称],
数据:返回{
项目:0,
...
}
方法:{
新练习:()=>{
这是一个项目++
}
}
...}

在这里,操作DOM不是一个好的解决方案。如果您使用一种方法,您应该认为它是VueJS方式。你看过动力学组件了吗?谢谢,我查一下