在Dart中,我一直在尝试创建一个extends的聚合物元素。
@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
我在这里做错了什么?
最佳答案
htmlDocument.register(String tag,type customElementClass,{String extendedTag})doc说
没有本地支持的平台需要[nativeTagName]参数
当子类化本机类型时,除:
我的猜测是聚合物确实提供了这个可选参数