如何使用 Polymer.dart 将 onclick 事件侦听器添加到所有输入字段

How to add an onclick event listener to all input fields using Polymer.dart

我想向 Polymer 模板中的所有输入字段添加一个 onclick 和一个 onchange 事件。

有没有办法通过代码一次将事件添加到所有事件? 我想避免将onclick和onchange属性一一添加到输入字段。

我觉得一定可以,但是我在乱码,搞不定

提前致谢

这与 Listen to events on ElementList with no explicit accessor 非常相似。您可能需要一个不同的选择器,但您的问题没有包含足够的信息来知道它可能是什么。也许:

List<StreamSubscription> _clickSubscriptions = <StreamSubscription>[];
List<StreamSubscription> _changeSubscriptions = <StreamSubscription>[];

this.shadowRoot.querySelectorAll("input")
.forEach((e) {
  _clickSubscriptions.add(e.on["on-click"].listen((event) {
    print("Event Triggered");
  }));
  _changeSubscriptions.add(e.on["on-change"].listen((event) {
    print("Event Triggered");
  }));
});

取消订阅使用

_clickSubscriptions.forEach((s) => s.cancel());
_changeSubscriptions.forEach((s) => s.cancel());

另见 How can you assign mutliple listeners to a single StreamSubscription?