2013-11-28 83 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