在Polymer Dart中扩展纸张项目

时间:2014-08-06 07:50:05

标签: dart dart-polymer

我一直在尝试从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

1 个答案:

答案 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>

<击>