请参阅此fiddle。
有一个父<table>
个html标记和嵌套的自定义防暴标记来构建该行。
在检查生成的标记时,测试行将在表格的外部呈现。
如果我以这种方式使用嵌套的<div />
,它会按照我的预期呈现 - 元素的子元素。这是设计的吗?或者渲染在内部使用html表的方式的怪癖?
答案 0 :(得分:1)
对我来说似乎是一个错误,即使你使用最新的防暴版2.4.1
,你的testrow
也不会在table
元素中呈现。
如果您将testrow
包裹在div
<div>
<testrow></testrow>
</div>
...它应该呈现:
<div>
<testrow><tr> <td>1</td> </tr></testrow>
</div>
我建议开一个新的issue。
否 quirk ,您的渲染结果只是无效的标记。 Riot 2.3.17
引入了新的data-is
- 属性,可以解析您的issue:
<table>
<tbody data-is="testrow"></tbody>
</table>
https://jsfiddle.net/v5ytp918/4/
要检查您的标记的有效性/正确性,只需将您的防暴标记包装在template
标记中并检查其innerHTML
:
答案 1 :(得分:0)
如果我以这种方式使用嵌套s,它会按照我的预期呈现 - 元素的子元素。这是设计的吗?或者渲染在内部使用html表的方式的怪癖?
最近花了我两个小时。问题的根本原因在于表格&#39;表格它的特殊之处在于它定义了自己的formatting context,并且TR之外不存在TR。 虽然riot认为组件和构建他们的虚拟DOM没有依赖关系(除了用户明确声明的那些)。 This说明了问题:
> let el = document.createElement('div')
> el.innerHTML = "<tr><td>foo</td><td>bar</td></tr>"
> el.innerHTML
"foobar"
=&GT;你不能独立渲染TR。
我没有发现任何这样的问题,顺便说一句,这是你必须处理yckart已经给出的解决方法(?)的唯一问题。 alternative solution将使用CSS顺便说一句,让CSS将嵌套的div结构直观地呈现到表中:
You can also use CSS to emulate tables if you need to.
display: table
display: table-row
display: table-cell