【发布时间】:2019-04-01 16:12:00
【问题描述】:
我目前正在 Vue.js 中开发一个组件,它用模板标签包装了一个 tr 标签。
这是组件的代码:
Vue.component('Company', {
name: 'Company',
components: {
CompanyAnalytics
},
props: {
company: {
required: true,
type: Object
}
},
data () {
return {
showAnalytics: false
}
},
template: `
<template>
<tr>
<td class="mp-company-logo">
<img :src="company.image" :alt="company.name" />
</td>
<td>
{{ company.name }}
</td>
<td>
{{ company.sharedDiamonds }}
</td>
<td>
<button class="btn btn-small btn-info">
View
</button>
</td>
<td>
<button class="btn btn-small btn-primary">
Edit
</button>
</td>
<td>
<label class="switch">
<input type="checkbox" />
<span class="slider round"></span>
</label>
</td>
</tr>
</template>
`
})
现在,这段代码根本不渲染。当我在浏览器中查看 devtools 时,我看到:
当我删除 template 标记并将tr 标记保留为根元素时,一切正常。
问题是,我需要渲染 2 个tr 标签,但我不能将它们包装在一个 div 中。我需要template 标签才能正常显示。
我尝试在我拥有的其他组件中使用template 标签,它们工作正常。具体来说,在这种情况下,template 标记不会呈现任何内容。
顺便说一句,我使用的是 Vue.js 的 CDN。
【问题讨论】:
-
看看vue-fragment。
标签: javascript html vue.js