我是Dart的新手,我想知道是否可以(例如)扩展DivElement类以在一行代码中创建自定义元素。我正在寻找这样的东西;
class RedBox extends DivElement {
RedBox(text) {
this.text = text;
this.style.background = "red";
}
}
RedBox myBox = new RedBox("Hello World");
document.body.append(myBox);
当然,我将使用自定义函数来处理更复杂的元素。但总的来说,这可能吗?
当我尝试运行此命令时,我得到:
implicit call to super constructor 'DivElement()'
最佳答案
您可以扩展HTML元素,但是有一些要求。您现在遇到的一个问题是,您需要一个RedBox.created
构造函数,并且它只能重定向到其父类(super class)。 created
必须是唯一的生成构造函数,尽管您可以添加工厂构造函数。
另一个要求是该元素已在document.registerElement中注册。
尝试添加以下内容:
class RedBox extends HtmlElement {
RedBox.created() : super.created() {
style.background = "red";
}
factory RedBox(text) => new Element.tag('my-redbox')..text = text;
}
document.registerElement('my-redbox', RedBox);