0
我有下面的自定義元素,我想在同一個文件進行註冊註冊自定義元素
custombtn.dart:
class SubmitFonix extends HtmlElement {
String name;
factory SubmitFonix([String name]) => (new Element.tag(tag) as SubmitFonix)
..name=name
;
SubmitFonix.created() : super.created() {
...
}
目前
,我註冊在主功能的元件,爲這樣:
void main() {
document.registerElement(SubmitFonix.tag, SubmitFonix);
}
我想登記的行添加,而不是在主()福具有它的custombtn.dart文件, nction,但如果我不能!
在polymer.dart,我注意到他們使用如下語句:
@initMethod
upgradePaperFocusable() => registerDartType('paper-focusable', PaperFocusable);
和其他文件,他們有:
const initMethod = const InitMethodAnnotation();
class InitMethodAnnotation {
const InitMethodAnnotation();
}
因此,使用相同的概念嘗試,並更新我的自定義元件文件如下:
class SubmitFonix extends HtmlElement {
String name;
factory SubmitFonix([String name]) => (new Element.tag(tag) as SubmitFonix)
..name=name
;
SubmitFonix.created() : super.created() {
...
}
@initMethod
upgradeCustomBtn() => document.registerElement(SubmitFonix.tag, SubmitFonix);
在執行時,我在控制檯得到了這個錯誤:
Exception: type 'HtmlElement' is not a subtype of type 'SubmitFonix' in type cast.
submit_btn.dart:10
SubmitFonix.SubmitFonix.
submit_btn.dart:10是:工廠SubmitFonix([字符串名])=>(新Element.tag(標籤)作爲SubmitFonix)
任何思想?
感謝@Gunter,您的評論以及此:http://stackoverflow.com/questions/26821567/custom-annotation-metadata-in-dart-lang/26830363#26830363和此:http://stackoverflow.com/questions/26826521 /由他們的元數據執行bundle-of-functions-tag-in-dart-lang幫助我解決了這個問題 – 2014-11-10 07:03:47