Reputation: 11
dart:html
, I can create a new subclass MyButton
of
ButtonElement
with factory constructor ,and add some new function
such as getButtonName(){}
...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 the getButtonName()
function. If I use btn as MyButton
then I get this error
Uncaught 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";
}
}
Upvotes: 1
Views: 185
Reputation: 657048
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
Upvotes: 1