问题
- import
dart:html
, I can create a new subclassMyButton
ofButtonElement
with factory constructor ,and add some new function such asgetButtonName(){}
... when it's running ,I get a instance
MyButton btn=new MyButton()
But the instance "btn" runtime type is still
ButtonElement
, and can't call thegetButtonName()
function. If I usebtn as MyButton
then I get this errorUncaught CastError: Casting value of type ButtonElement to incompatible type MyButton
Here is the code
class MyButton extends ButtonElement {
factory MyButton(){
return new ButtonElement();
}
String getButtonName(){
return "ButtonName";
}
}
回答1:
Just because this line
return new ButtonElement();
is within a factory constructor or MyButton
doesn't mean it has any relation to MyButton
it still returns new ButtonElement()
.
This question extendTag in Dart custom element shows how to create a custom element without Polymer.
See also this discussion https://groups.google.com/a/dartlang.org/forum/#!topic/misc/-z_8sVp_uPY
来源:https://stackoverflow.com/questions/28470066/how-can-i-create-a-new-subclass-extends-a-buttonelement