dart:html
,我可以创建一个新的子类MyButton
ButtonElement
使用工厂构造函数,并添加一些新函数
例如getButtonName(){}
... 当它正在运行时,我得到一个实例
MyButton btn=new MyButton()
但实例“btn”运行时类型仍为ButtonElement
,无法调用getButtonName()
函数。如果我使用btn as MyButton
,那么我会收到此错误
未捕获的CastError:类型的转换值 ButtonElement为不兼容的类型MyButton
这是代码
class MyButton extends ButtonElement {
factory MyButton(){
return new ButtonElement();
}
String getButtonName(){
return "ButtonName";
}
}
答案 0 :(得分:1)
仅仅因为这一行
return new ButtonElement();
在工厂构造函数中,或MyButton
并不意味着它与MyButton
有任何关系,它仍会返回new ButtonElement()
。
此问题extendTag in Dart custom element显示了如何在没有Polymer的情况下创建自定义元素 另见此讨论https://groups.google.com/a/dartlang.org/forum/#!topic/misc/-z_8sVp_uPY