1

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

ここで何が間違っていますか?

4

2 に答える 2

1

HtmlDocument.register(String tag, Type customElementClass, {String extendsTag}) ドキュメントは言う

[nativeTagName] パラメータは、ネイティブ サポートのないプラットフォームで必要です

以下以外のネイティブ型をサブクラス化する場合:

  • HtmlElement
  • SvgElement
  • アンカー要素
  • AudioElement
  • ボタン要素
  • CanvasElement
  • DivElement
  • 画像要素
  • InputElement
  • LIElement
  • ラベル要素
  • メニュー要素
  • MeterElement
  • OListElement
  • OptionElement
  • OutputElement
  • ParagraphElement
  • プレエレメント
  • ProgressElement
  • SelectElement
  • スパン要素
  • UListElement
  • ビデオ要素

私の推測では、ポリマーがこのオプションのパラメーターを提供していると思います

于 2013-12-02T11:48:28.640 に答える
1
@CustomTag('ext-td')
class extendedTd extends TableCellElement with Polymer, Observable {

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

私はこれを行い、私のものは適切に機能しました。

于 2014-10-09T07:07:56.950 に答える