这可能是一个愚蠢的问题,因为它似乎很明显,这将很难实现,但尽管如此,我想问…
取这个标记:
<input is="my-input" name="foo">
和这个假定的组件:
<polymer-element name="my-input">
<template>
<div>
<span class="myinput" name="{{name}}">
</div>
</template>
....
是否可以将渲染后的DOM转换为:
<div>
<span class="myinput" name="foo">
</div>
通过有效地替换初始的本地HTML输入?
用例是提供一个回退。如果浏览器不支持web组件,它将退回到本机控件。此外,作者可以编写他们知道的语法:HTML -并且可以通过单个'is'属性增强本机控件。
更新: No.
Shadow DOM封装(与改变用户的DOM相反)是Polymer中的一个基本概念。曾经有一个lightdom
属性会做一些类似于你所要求的事情,但它最终被删除(讨论)。
你可以很容易地单独使用本地自定义元素来实现这样的东西。或者Mozilla的x-tag或者IBM的delite已经覆盖了这个用例。
原始回答
在polymer-element
标签上使用extends
属性:
<polymer-element name="my-input" extends="input" attributes="name">