次の方法で、レンダリングされたテンプレートをドキュメントに追加しています。
Blaze.renderWithData(Template.page, Session.get(toAdd[i]), document.getElementById('pages'))
これはうまく機能します...オートフォームを使用する場合を除いて。何が原因なのかはわかりませんが、一部のオートフォーム ( 内Template.page
に存在する可能性があり、渡されたデータを介してそのテンプレートに動的に追加されます) が表示され、他のオートフォームはクライアントエラーをスローします:
Uncaught TypeError: Cannot read property 'formValues' of undefined :: autoform-inputs.js:162
markChanged :: autoform-inputs.js:169
updateTrackedFieldValue :: afFieldInput.js:72
timeout
その afFieldInput.js の 71 行目に 0 が設定されています。これを 500 に増やすと上記のエラーは修正されますが、ハッキーであり、他の問題が発生します。
私が推測できる最善の方法は、autoform が DOM に存在する前に id で DOM からフォームを取得しようとしているということです。推測する必要がある場合は、Blaze を介してドキュメントフラグメントとして存在する可能性があります。
AutoForm.templateInstanceForForm
正しいフォーム ID を取得していることは確認できますが、 document.getElementById(formId)
null が返されています。
もう 1 つの可能性は、何らかの理由で Blaze がテンプレートのレンダリングに失敗しているが、警告はしていないということです。