Ajax 経由で読み込まれるフォームの本文で Gmap4Rails を使用しています。フォームにはカスタム フィールドがあり、そのうちのいくつかは、非 Ajax バージョンのフォームで作業しているロケーション ピッカーである可能性があります。
フォームの Ajax バージョンでは、「Gmaps.my_map_id」未定義エラーが発生します。
フォームの非 Ajax バージョンでは、Gmaps4Rails で通常行われているように、"window.onload" の HTML ページ ヘッドで JavaScript を介して Gmaps.loadMaps を呼び出します。
ただし、window.onload 時にマップが定義されていないため、これは Ajax のコンテキストでは機能しません。
私のフォームでは、Gmaps マップ オブジェクトごとにコールバックも定義しています。これは、「Gmaps.loadMaps();」を実行しても、「未定義」エラーで失敗しているようです。最初のコールバックの直前のスクリプトは、Ajax によって読み込まれるコードで定義されます。
基本的に、コード順で次のようになります。
- ループ内で、gmaps4rails partial が呼び出され、各マップ カスタム フィールドが出力されます
- そのループが終了した後、Gmaps.loadMaps() が 1 回呼び出されます
- 別のループでは、各 Gmaps マップ オブジェクトにコールバック用の JS が追加されます。
これを機能させる方法に関する提案はありますか?