更改问题'是'在聚合物中动态
Problems changing 'is' dynamically in Polymer
我正在尝试将Polymer UI添加到包含表单的现有HTML页面中。我无法控制页面的内容,只能控制页眉和页脚,因此我无法将表单更改为使用Polymer元素而不是<input>
。因此,我尝试使用Javascript重写表单。
我发现向现有元素添加is
属性没有任何效果——元素不会被加载。
我认为这一切都发生在Polymer扫描DOM寻找is
属性之后,所以它没有注意到我的变化。(尽管创建一个具有is
属性的新元素并添加它也不起作用,这有点奇怪,因为添加Polymer自定义元素确实起作用。)
有什么办法解决这个问题吗;比如告诉Polymer我何时添加新元素,以便它可以正确升级?
若要使用is=
,必须扩展本机元素。这些被称为类型扩展自定义元素(http://www.html5rocks.com/en/tutorials/webcomponents/customelements/#usetypeextension)。
一般来说,我认为以后添加is=
属性对升级元素没有任何影响。元素需要使用is=
(例如<input is="core-input">
)预先声明,或者使用createElement的特殊版本动态实例化:
var input = document.createElement('input', 'core-input');
在声明的情况下,这是解析器的信号,用于在元素被看到时更改其原型。在JS的情况下,这是在创建时完成的。如果您只使用el.setAttribute('is', 'core-input')
,那么元素的原型已经在该点创建,因此它没有任何效果。
相关文章:
- 聚合物0.5.5:核心列表中的条件模板和/或模板动态参考
- 如何动态创建聚合物元素
- 聚合物 - 将事件绑定到动态创建的元素
- 更改问题'是'在聚合物中动态
- 聚合物动态创建的元素不工作(铁卷轴阈值)
- 动态添加聚合物元素的就绪事件
- 聚合物动态变化数据阵列
- 在聚合物中动态生成 SVG 的样式
- 按动态属性值选择聚合物元素
- 聚合物动态地将子元素附加到 javascript 中的内容元素
- 聚合物核心标签和核心复选框动态
- 访问聚合物动态元素
- 如何在聚合物中设置动态元标记和开放图标记
- InternetExplorer:在HTML中动态设置聚合物纸工具提示的问题
- 聚合物动态生成元素
- 具有动态id值的聚合物自动节点查找
- 当使用动态HTML导入在模板中盖章时,聚合物元素会损坏尺寸
- 动态造型聚合物元素
- 通过计算绑定,在聚合物中使用dom-repeat从Firebase动态获取文件url
- 聚合物-动态模板渲染