【发布时间】:2020-04-17 06:36:36
【问题描述】:
在这个简单的codesandbox demo 中,HTML 元素存储在一个数据数组中,v-html 绑定到一个 div 以将这些元素呈现为该 div 的子元素。但它不起作用,当添加新元素时,元素不会被渲染,而是显示[object HTMLParagraphElement]。
<template>
<div id="app">
<child />
</div>
</template>
<script>
import child from "./components/child";
export default {
name: "App",
components: {
child
}
};
</script>
孩子.vue
<template>
<div>
<button @click="addNewEl">Add New Element</button>
<div v-for="el in elList" v-html="el"></div>
</div>
</template>
<script>
export default {
name: "Child",
data() {
return {
elList: []
};
},
methods: {
addNewEl() {
var para = document.createElement("P"); // Create a <p> node
var t = document.createTextNode("This is a paragraph."); // Create a text node
para.appendChild(t); // Append the text to <p>
this.elList.push(para);
}
},
created() {
this.addNewEl();
}
};
</script>
谁能告诉我我做错了什么,并展示将孩子附加到父母身上的正确 Vue 方式。
谢谢。
【问题讨论】: