liu bin
liu bin

Reputation: 11

How can I create a new subclass extends a ButtonElement

  1. import dart:html , I can create a new subclass MyButton of ButtonElement with factory constructor ,and add some new function such as getButtonName(){} ...
  2. when it's running ,I get a instance

    MyButton btn=new MyButton()
    
  3. 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

Answers (1)

Günter Zöchbauer
Günter Zöchbauer

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

Related Questions