Polymer 1.x:势在必行添加事件监听器

Mow*_*zer 5 javascript polymer polymer-1.0

我已经为我的<iron-ajax>调用添加了一个事件监听器给我的自定义元素.

是否有更短(更方便的语法)方式来命令性地(即使用Javascript)在Polymer中添加事件监听器?

换句话说,Polymer库是否包含任何为此加糖的语法?

定制element.html
<template>
  ...
  <iron-ajax id="ajax" last-response="{{ajax}}"></iron-ajax>
  ...
<template>
<script>
  ...
  var that = this,
  t = this.$.ajax;
  t.addEventListener('response', function(e) {
    console.log(that.ajax);
  });
  ...
</script>
Run Code Online (Sandbox Code Playgroud)

研究

这里的文档说:

您还可以this.$使用语法将事件侦听器添加到集合中的任何元素nodeId.eventName.

但我认为这仅适用listeners于在Polymer对象中使用属性,如:

listeners: {
  'tap': 'regularTap',
  'special.tap': 'specialTap'
},
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 4

什么也应该在 JS 中工作(仅在 Dart 中尝试过)

 this.listen(this.$.ajax, 'last-response', 'lastResponseHandler');
Run Code Online (Sandbox Code Playgroud)

还有this.unlisten()取消事件订阅。我认为如果你强制添加它,你也需要强制删除它以防止内存泄漏。

参考: