【发布时间】:2018-07-02 23:15:34
【问题描述】:
我正在尝试添加一个组件(从数据库中获取选项的下拉列表)...
export default {
name: 'IngMenu',
props:['ingredients'],
data () {
return {
selected: '',
}
},
render: function(createElement){
return createElement('select',
this.$props.ingredients.map(function(ing){
return createElement('option', ing.name)
})
)
}
}
进入使用按钮生成的单元格/行
<button class="btn" id="add" v-on:click="addRow">Add Ingredient</button>
这里方法...
methods: {
addRow: function(){
let table = document.getElementById("tab");
let row = table.insertRow();
let cell1 = row.insertCell(0);
let cell2 = row.insertCell(1);
let cell3 = row.insertCell(2);
let cell4 = row.insertCell(3);
let cell5 = row.insertCell(4);
cell1.appendChild(document.createElement('Ingmenu')); //ERROR
cell2.innerHTML = "NEW CELL2";
cell3.innerHTML = "NEW CELL2";
cell4.innerHTML = "NEW CELL2";
cell5.innerHTML = "NEW CELL2";
}
} }
如果我将它添加到页面顶部但我无法插入到单元格内,该组件可以完美运行。
到目前为止我尝试过的:
cell1.innerHtml = "" 它在表格树中添加标签而不是渲染组件
cell1.appendChild(document.createElement('Ingmenu'));和上面的一样
cell1.innerText 显然它将标签显示为文本
正如我上面所说,组件已正确初始化,只要它可以访问成分属性,它就可以在任何页面上工作。
我花了将近一天的时间试图独自解决这个问题。
有人知道解决办法吗?感谢您的关注
【问题讨论】:
-
为什么...您使用 DOM 操作来创建 Vue 组件?让 Vue 渲染表格。
-
我不确定我明白你的意思。你指的是 Vue 网格组件吗?谢谢