【发布时间】:2018-08-11 11:56:49
【问题描述】:
在 Polymer 2.0 中提交之前,我一直在使用以下语法来编辑 Iron-form 请求:
connectedCallback() {
super.connectedCallback();
someForm.addEventListener('iron-form-presubmit, function() {...})
}
现在我想在一个 dom-repeat 中加载多个 iron-forms,每个 Iron-form-presubmit 函数都相同。表单的数量和内容是使用 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 模板尚未加载。有没有一种方法可以等到页面完成加载,或者可能有另一种方法来完成同样的事情?
【问题讨论】:
标签: polymer polymer-2.x dom-repeat iron-ajax iron-form