在 Polymer 2.0 中提交之前,我一直在使用以下语法来编辑 Iron-form 请求:
connectedCallback() {
super.connectedCallback();
someForm.addEventListener('iron-form-presubmit, function() {...})
}
现在我想在一个 dom-repeat 中加载多个铁形式,每个都具有相同的铁形式预提交功能。表单的数量和内容是使用 iron-ajax 从服务器加载的。我打算遍历所有表单并添加事件侦听器,但是当我调用以下命令时,表单尚未加载,因此 allForms 为空。
HTML:
<iron-ajax auto
id="requestSchedules"
url="/api/v2/schedules"
handle-as="json"
on-response="handleApiResponse"
last-response="{{schedules}}">
</iron-ajax>
<dom-repeat items="[[schedules]]">
<template>
<paper-card heading="Schedule">
<div class="card-content">
<iron-form id="scheduleForm[[item.id]]">
...
Javascript:
connectedCallback() {
super.connectedCallback();
var allForms = this.shadowRoot.querySelectorAll("iron-form");
// here allForms = []
...
}
此时使用断点检查 shadow DOM 表明 dom-repeat 模板尚未加载。有没有一种方法可以等到页面完成加载,或者可能有另一种方法来完成同样的事情?