【发布时间】:2020-10-12 20:04:04
【问题描述】:
我想渲染一个表格,因为我需要在单元格上工作,所以我通过一个组件来定义它们。
下面是小提琴中的例子:
Vue.component('table-cell', {
props: {
'r': 0,
'c': 0
},
template: '<td style="border: 1px solid black; width:2em;">{{ c }}</td>'
});
var app = new Vue({
el: '#app',
data: {
rows: 3,
cols: 3,
},
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<table>
<tbody>
<tr v-for="r in rows">
<table-cell v-for="c in cols" v-bind:key="c">
</tr>
</tbody>
</table>
</div>
但是生成的代码不是我所期望的:
<div id="app">
<td></td>
<td></td>
<td></td>
<table>
<tbody>
<tr></tr>
<tr></tr>
<tr></tr>
</tbody>
</table>
</div>
由于我不明白的原因,我的 td 元素是在 tr 之外生成的,而且一切似乎都像我的两个循环没有嵌套一样工作。当我用简单的<td>(不使用组件)更改<table-cell> 时,它按预期工作。
【问题讨论】:
-
不是你要找的答案,但我想指出,data 属性应该是一个返回对象的函数
-
这不仅适用于组件,而且不适用于 vue 实例?
标签: javascript html vue.js html-table