在dart代码中定义自定义事件侦听器,而不是html标记

时间:2014-02-14 10:27:20

标签: dart dart-polymer

在这篇有用的文章中,我们可以学习如何通过模板中的内联标记来监听调度的自定义事件: How do I fire a custom event from Polymer Dart? 我想知道在动态创建自定义元素时是否可以在dart脚本中执行相同操作,如下所示:

var myElement = new Element.tag('my-element');

1 个答案:

答案 0 :(得分:4)

组件中的每个事件处理程序都需要EventStreamProvider(静态)
和一个易于访问的吸气剂。

static const EventStreamProvider<CustomEvent> logoutEvent = 
    const EventStreamProvider<CustomEvent>("my-logout");
Stream<CustomEvent> get onLogout =>  MyElement.logoutEvent.forTarget(this);

你发起像

这样的事件
this.dispatchEvent(new CustomEvent("my-logout", detail: {'someData': 'bla'}));

// Polymer provides a shortcut for this
fire('my-logout', detail: {'someData': 'bla'});

您订阅此活动,如

mySesson.onLogout.listen((e) => doSomething());