在JavaScript中,我们可以通过以下方式将侦听器添加到自定义元素here:
proto.createdCallback = function() {
this.addEventListener('click', function(e) {
alert('Thanks!');
});
};
我尝试将等效的DART代码设为:
Element launchElement(){
this.onClick.listen((e)=>print('Thanks!'));
return (shadow);
}
我在这里做错了吗?
我的自定义元素的完整代码是:
class MegaButton extends ButtonElement {
static final tag = 'mega-button';
factory MegaButton()=>new Element.tag('button', tag);
MegaButton.created() : super.created() {
var shadow = this.createShadowRoot();
shadow.text='save';
Element launchElement(){
this.onClick.listen((e)=>print('Thanks!'));
return (shadow);
}
}
将其注册为:
document.registerElement(MegaButton.tag, MegaButton, extendsTag: 'button');
并通过以下方式调用:
myDiv.nodes.add(new Element.tag('button', 'mega-button'));
答案 0 :(得分:1)
class MegaButton extends ButtonElement {
static final tag = 'mega-button';
factory MegaButton()=> new Element.tag('button', tag);
MegaButton.created() : super.created() {
var shadow = this.createShadowRoot();
shadow.text = 'save';
}
void attached() {
this.onClick.listen((e)=>print('Thanks!'));
}
}
答案 1 :(得分:0)
您可以这样添加监听器:
class MegaButton extends ButtonElement {
static final tag = 'mega-button';
factory MegaButton() => new Element.tag('button', tag);
MegaButton.created() : super.created() {
var shadow = this.createShadowRoot();
shadow.text = 'save';
Element launchElement() {
return (shadow);
}
}
}
void main() {
document.registerElement(MegaButton.tag, MegaButton, extendsTag: 'button');
DivElement myDiv = querySelector("#mydiv");
MegaButton mbutton = new Element.tag('button', 'mega-button');
mbutton.onClick.listen((e) => print('Thanks!'));
myDiv.nodes.add(mbutton);
}