Я гуглил весь день и пока не нашел решения этой проблемы.
Я пытаюсь создать приложение, в которое я могу вставить ввод с v-моделью, которая должна быть реактивной, и значение этого ввода должно быть показанов другом div элементе.Что мне действительно нужно, так это иметь код, в который я мог бы вставить этот ввод с помощью v-модели в любое место моего HTML кода.
Вот пример моего мини-приложения,где все работает хорошо, за исключением того, что v-модель не работает, потому что я пытаюсь вставить его динамически.
Кто-нибудь знает, как заставить это работать?
Вот код:
<template>
<div>
<div id="content"></div>
<button type="button" @click="createNew('typeOne')">Create Type One</button>
<button type="button" @click="createNew('typeTwo')">Create Type Two</button>
<h3 style="color:#000000;" id="formTypeOne0">formTypeOne0</h3>
<h3 style="color:#000000;" id="formTypeOne1">formTypeOne1</h3>
<h3 style="color:#000000;" id="formTypeTwo0">formTypeTwo0</h3>
<h3 style="color:#000000;" id="formTypeTwo1">formTypeTwo1</h3>
</div>
</template>
<script>
export default {
data () {
return {
formTypeOne0: '',
formTypeOne1: '',
formTypeTwo0: '',
formTypeTwo1: '',
numberTypeOne: 0,
numberTypeTwo: 0
}
},
methods:{
createNew(type) {
if (type === 'typeOne') {
var html = '<input type="text" :value="formTypeOne' + this.numberTypeOne + '" v-model="formTypeOne' + this.numberTypeOne + '">'
document.getElementById('content').insertAdjacentHTML('beforeend', html)
this.numberTypeOne = this.numberTypeOne + 1
} else if (type === 'typeTwo') {
var html2 = '<input type="text" :value="formTypeTwo' + this.numberTypeTwo + '" v-model="formTypeTwo' + this.numberTypeTwo + '">'
document.getElementById('content').insertAdjacentHTML('beforeend', html2)
this.numberTypeTwo = this.numberTypeTwo + 1
}
}
},
watch: {
formTypeOne0: function(val, oldVal) {
document.getElementById('formTypeOne0').innerHTML = val
},
formTypeOne1: function(val, oldVal) {
document.getElementById('formTypeOne1').innerHTML = val
},
formTypeTwo0: function(val, oldVal) {
document.getElementById('formTypeTwo0').innerHTML = val
},
formTypeTwo1: function(val, oldVal) {
document.getElementById('formTypeTwo1').innerHTML = val
}
}
}