聆听来自外部的聚合物附加事件

时间:2014-03-10 19:43:54

标签: polymer

在我的团队中,我们正在尝试为聚合物自定义元素编写一些单元测试。我们的大多数自定义元素都使用Polymer的模板绑定功能,因此我们在自定义元素的附加回调下编写了大量代码。 在为这些元素编写单元测试时,我只能听取聚合物就绪事件,但我们需要的是仅在聚合物附加事件之后运行我们的测试套件,因此绑定已经完成。

现在我们已经对要检查的元素进行了脏检查,以便我们的测试套件仅在完整模板受限后运行。

我已经看到了post,其中Polymer公开了一种听取就绪事件的方法,但我们需要的是一种从外部聚合物收听聚合物附着事件的方法。

2 个答案:

答案 0 :(得分:3)

无论你在哪里听:

Left(Record_Array(2), 20)

你想听的元素:

window.addEventListener('custom-element-attached', function() {
  console.log('Custom element attached event has fired');
}.bind(this));

我没有测试过这段代码,但它应该可以运行。

答案 1 :(得分:2)

我认为有几种方法可以解决这个问题。

  1. 从测试工具中的new domReady callback或猴子补丁domReady中激活您自己的自定义事件,以便它调用元素已定义的任何回调,并调度自定义事件。
  2. 创建一个监视父元素的Mutation Observer,可以检测新子元素何时插入DOM。我做了an example jsbin。注意:如果您的元素已经在DOM中,则Mutation Observer将不起作用。您需要先设置Mutation Observer,然后将您的元素添加到页面中。