【问题标题】:Use native node name for a Polymer custom element?对 Polymer 自定义元素使用本机节点名称?
【发布时间】:2014-04-21 12:37:54
【问题描述】:

我有一个自定义 Polymer 元素,其中包含一组项目,将它们呈现为表格。我想添加一个自定义元素来处理表格中每一行的呈现,但是在 HTML 中通常会添加 <tr> 的地方不允许使用自定义元素。

允许:

<table>
<tbody>
  <tr>
    <td>Example</td>
  </tr>
</tbody>
</table>

不允许:

<table>
<tbody>
  <custom-row>
    <tr>
      <td>Example</td>
    </tr>
  </custom-row>
</tbody>
</table>

我见过examples of Web Components that use an "is" attribute to extend native elements(例如&lt;tr is="custom-row"&gt;),但是that doesn't seem to be possible in Polymer's template binding

我正在通过在单个自定义元素中呈现整个表格或使用 divs(使用 CSS 用于 display:tabledisplay:table-rowdisplay:table-cell 等)而不是 table/tr /td 元素。

是否可以继续使用&lt;tr&gt; 作为自定义元素的节点名称?

【问题讨论】:

    标签: javascript html polymer


    【解决方案1】:

    从您的示例中,假设 &lt;custom-row&gt; 是扩展 &lt;tr&gt; 的自定义元素,您正在尝试将 &lt;tr&gt; 嵌套为自定义元素的子元素。解析器会将其丢弃。

    改为使用类型扩展自定义元素(is="")表单并扩展&lt;tr&gt;

    <table>
    <tbody>
      <tr is="custom-tr">
        <td>Example</td>
      </tr>
    </tbody>
    </table>
    

    这对我有用:http://jsbin.com/nobaqeso/1/edit

    【讨论】:

    • 成功了,谢谢!我以为我之前尝试过is="",但显然没有(或者没有正确完成)。
    猜你喜欢
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多