【发布时间】:2015-03-18 19:15:21
【问题描述】:
我正在通过以下方式向文档添加渲染模板:
Blaze.renderWithData(Template.page, Session.get(toAdd[i]), document.getElementById('pages'))
这很好用...除了有时使用 autoform。我不确定是什么触发了它发生,但我的一些自动表单(可以存在于Template.page 中,它们通过传入的数据动态添加到该模板)显示,而其他则引发客户端错误:
Uncaught TypeError: Cannot read property 'formValues' of undefined :: autoform-inputs.js:162
markChanged :: autoform-inputs.js:169
updateTrackedFieldValue :: afFieldInput.js:72
在第 71 行的那个 afFieldInput.js 中有一个 timeout 设置为 0。将其提高到 500 可以修复上述错误,但很麻烦并会导致其他问题。
我能猜到的最好的结果是,autoform 试图在表单存在于 DOM 之前通过 id 从 DOM 中获取表单,如果我不得不猜测的话,它可能通过 Blaze 作为文档片段存在。
我可以确认 AutoForm.templateInstanceForForm 获得了正确的表单 ID,但 document.getElementById(formId) 返回 null。
另一种可能性是 Blaze 出于某种原因未能渲染模板但没有警告我。
【问题讨论】:
标签: meteor meteor-blaze meteor-autoform