use*_*251 5 jquery components knockout.js
我想使用一个组件作为表行模板,但似乎无法找到方法,这可能吗?
当我执行以下操作时,它不会将组件放在tbody中,而是将其放在表格上方.
零件
<table>
<tbody>
<reportingline params='name: "Phil"'></reportingline>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
模板
<tr>
<td data-bind="text: col1"></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
使用虚拟组件绑定.此方法允许您在没有包装元素的情况下使用组件.
<table>
<tbody>
<!-- ko component: { name:"reportingline", params: { name: 'Phil' } } --><!-- /ko -->
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
恐怕这看起来不可能。来自聚合物常见问题解答:
\n\n\n\n\n在添加 HTML 之前
\n<template>,某些元素(如<select>、<table>和其他元素)具有特殊的解析器规则,以分别防止除<option>和之外的任何元素<tr>成为其子元素。由于这些遗留规则,不\xe2\x80\x99t 支持的浏览器<template>会将意外元素脱离上下文并使它们成为同级元素 [..]
因此,至少在某些现代浏览器 \xe2\x80\x94 中,将自定义元素视为表格行 \xe2\x80\x94 的唯一方法是使用 HTML 标记<template>,而 Knockout 组件不使用该标记。
<table>根据WHATWG HTML 标准文档,内部允许的元素是
\n\n\n按此顺序:可选地一个
\ncaption元素,后跟零个或多个colgroup元素,可选地后跟一个thead元素,后可选地后跟一个tfoot元素,后跟零个或多个tbody元素或一个或多个tr元素,后可选地后跟一个tfoot元素(但只能是tfoot总共是一个子元素),可以选择与一个或多个脚本支持元素混合。
(“脚本支持元素”是<script>和<template>)
最好的解决方法可能是创建您自己的自定义<table>标签,并通过display: table. 如果您这样做,请考虑通过 ARIA 角色(例如grid.
| 归档时间: |
|
| 查看次数: |
448 次 |
| 最近记录: |