如何创建新的子类扩展ButtonElement

时间:2015-02-12 05:36:19

标签: dart dart-html

  1. 导入dart:html,我可以创建一个新的子类MyButton ButtonElement使用工厂构造函数,并添加一些新函数 例如getButtonName(){} ...
  2. 当它正在运行时,我得到一个实例

    MyButton btn=new MyButton()
    
  3. 但实例“btn”运行时类型仍为ButtonElement,无法调用getButtonName()函数。如果我使用btn as MyButton,那么我会收到此错误

      

    未捕获的CastError:类型的转换值           ButtonElement为不兼容的类型MyButton

  4. 这是代码

        class MyButton extends ButtonElement {   
           factory MyButton(){
            return new ButtonElement();   
           }
    
           String getButtonName(){
            return "ButtonName";   
           } 
        }
    

1 个答案:

答案 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

相关问题