我一直在尝试从paper_elements包中扩展paper-item元素。我在扩展自己的元素时做了一些事情,但是失败了。
<link rel="import" href="../../packages/polymer/polymer.html">
<link rel="import" href="../../packages/paper_elements/paper_item.html">
<polymer-element name="x-item" extends="paper-item">
...
</polymer-element>
@CustomTag('x-item')
class XItem extends PaperItem {
XItem.created() : super.created();
}
我没有收到任何错误消息,并且没有初始化Polymer Element,页面的空白部分我放置了Polymer元素。
我尝试使用与用于扩展内置HTML元素(如button或div)相同的方法。那也失败了。
<link rel="import" href="../../packages/polymer/polymer.html">
<link rel="import" href="../../packages/paper_elements/paper_item.html">
<polymer-element name="x-item" extends="paper-item">
...
</polymer-element>
@CustomTag('x-item')
class XItem extends PaperItem with Polymer, Observable {
XItem.created() : super.created() {
super.polymerCreated();
}
}
我得到了
Breaking on exception: NotSupportedError: Registration failed for type 'x-item'. The tag name specified in 'extends' is a custom element name. Use inheritance instead.
如果我删除聚合物模板定义的延伸部分,我再也得不到任何结果。在放置页面中的Polymer元素的地方,只有空白。
如果我通过
导入实际的JS版本polymer-item.html,则仍会发生上一个错误<link rel="import" href="../../packages/paper_elements/src/paper-item/paper-item.html">
虽然我仍然需要使用Polymer和Observable扩展PaperItem,使用super.polymerCreated();生成该错误。
我知道Polymer Dart团队做了一些诡计,以获得用JS编写的底层纸质元素,就像它们是Polymer Dart元素一样。我想这就是造成问题的原因。我的问题是如何克服这个问题,所以我可以在Dart中扩展一个纸质元素?
更新 - 已提交错误https://code.google.com/p/dart/issues/detail?id=20388
答案 0 :(得分:4)
我试了一下它也没有为我工作 我非常确定这是一个错误/缺失的功能,其中包含用于paper-elements / core-elements的Polymer.js元素的Dart包装。
<击>
您还没有添加元素的HTML。
您的扩展元素模板是否包含<shadow></shadow>
元素?
<polymer-element name="x-item" extends="paper-item">
<template>
<shadow></shadow>
</template>
</polymer-element>
击> <击> 撞击>