2013-11-28 51 views
1

在Dart中,我一直在努力创造一种延伸的聚合物元素。如何在Dart聚合物中延伸​​

@CustomTag('deckname-td-item') 
class DecknameTdItemElement extends TableCellElement with Polymer, Observable { 
    @published String item; 

    DecknameTdItemElement.created() : super.created();  

    void wordFileClicked(Event e, var detail, Node target) { 
    String deckName = $['deckAnchor'].text;   
    dispatchEvent(new CustomEvent('decknameclicked', detail: deckName)); 
    } 
} 

对应的HTML:

<polymer-element name="deckname-td-item" extends="td"> 
<template> 
    <style> 
    a { 
    font-weight: bold; 
    } 
    </style> 
    <a id='deckAnchor' href="#" on-click="{{wordFileClicked}}">{{item}}</a> 
</template> 
<script type="application/dart" src="deckname_td_item.dart"></script> 
</polymer-element> 

用法:

<td is="deckname-td-item" item="{{wordFile}}" 
    on-decknameclicked="{{deckNameChanged1}}"></td> 

一切都在Dartium工作正常,它编译没有任何警告,但是当我运行生成的输出,我得到:

Uncaught Unsupported operation: extendsTag does not match base native class 

什么我在这里做错了吗?

+0

还没有解答?也许在这个论坛发布信息:https://groups.google.com/a/dartlang.org/forum/#!forum/web –

回答

1

HtmlDocument.register(字符串标签,类型customElementClass,{字符串extendsTag})医生说

的〔nativeTagName]由平台所需参数没有本机支持

继承其它天然类型相比时

  • 的HtmlElement
  • SvgElement
  • AnchorElement
  • AudioElement
  • ButtonElement
  • CanvasElement
  • 的DivElement
  • ImageElement
  • InputElement
  • LIElement
  • LabelElement
  • MenuElement的
  • MeterElement
  • OListElement
  • OptionElement
  • OutputElement
  • ParagraphElement中
  • PreElement
  • ProgressElement
  • SelectElement
  • SpanElement中
  • UListElement
  • VideoElement

我的猜测是,聚合物不提供此可选参数

1
@CustomTag('ext-td') 
class extendedTd extends TableCellElement with Polymer, Observable { 

    extendedTd.created() : super.created() { 
    polymerCreated(); 
    } 
} 

我这样做,和我的工作正常。

+0

您最近的两个问题是否也解决了? –

+0

那么我有他们两个的解决方法。在这个答案中,“正常工作”我只是指扩展的TD,因为它工作得很好。 – Azael