dart - 你如何在 Polymer 中调度和监听自定义事件?

标签 dart polymer dart-polymer

我想要一个子元素来调度一个自定义事件,父元素来监听它,并采取一些行动。使用 Polymer 时如何执行此操作?

最佳答案

您可以像这样从 polymer 元素调度自定义事件:

dispatchEvent(new CustomEvent('nameOfEvent'));

然后,父元素可以像这样监听自定义事件:
<child-element on-childspeaks="fireAway"></child-element>

这是一个更完整的示例,展示了这是如何工作的。首先,这是子元素的代码:

<!DOCTYPE html>

<polymer-element name="child-element">
  <template>
    <div on-click="dispatch">I am a child</div>
  </template>
  <script type="application/dart">
    import 'dart:html';
    import 'package:polymer/polymer.dart';

    @CustomTag('child-element')
    class ChildElement extends PolymerElement with ObservableMixin {

      dispatch(Event e, var detail, Node sender) {
        print('dispatching from child');
        dispatchEvent(new CustomEvent('childspeaks'));
      }
    }
  </script>
</polymer-element>

这是父元素的代码:

<!DOCTYPE html>
<link rel="import" href="child_element.html">
<polymer-element name="parent-element">
  <template>
    <div>I am the parent</div>
    <child-element on-childspeaks="fireAway"></child-element>
  </template>
  <script type="application/dart">
    import 'dart:html';
    import 'package:polymer/polymer.dart';

    @CustomTag('parent-element')
    class ParentElement extends PolymerElement with ObservableMixin {

      void fireAway() {
        window.alert('The child spoke, I hear');
      }
    }
  </script>
</polymer-element>

关于dart - 你如何在 Polymer 中调度和监听自定义事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19040193/

相关文章:

dart - 如何在flutter中创建可滚动的日期选择器?

polymer - dom-repeat 模板项的计算属性

javascript - 使用纸张按钮的自定义元素

dart - 如何创建继承父文档 CSS 的 Polymer Dart 组件?

regex - 在纸张输入十进制数时使用什么模式?

dart - 销毁 polymer 元素时处置StreamController

jquery - Polymer + JQuery UI + Dart:自动完成功能无法正常工作

flutter - 将 ChangeNotifier 从 provider 迁移到 hooks_riverpod

dart - 向 Material 文本字段添加芯片

javascript - 如何在没有事件的情况下在自定义 polymer 元素之间进行讨论