0

私は何か非常にばかげたものを見逃していると感じていますが、一日中これで立ち往生していて、それを整理するものは何も見つかりませんでした. ファンシーボックスライトボックスが呼び出されたときにユーザーがマークされたマップをロードしたいのですが、次のコードは私が持っている最善かつ最小限のアプローチですが、私は得ています:

ReferenceError: 変数が見つかりません: google

= link_to image_tag('map.png'), map_vendor_path(@coupon.vendor), class: 'js-show-map'

:javascript
  $(document).ready(function(){
    $('.js-show-map').fancybox({
      onComplete: function(){
        Gmaps.loadMaps();
        Gmaps.map.addMarkers([{"lng": "7.859409", "lat": "48.023551"}]);
      }
    });
  });

リンクをクリックすると、次のビューが呼び出されます

map.html.haml

// 
 it's here just for test
= stylesheet_link_tag 'gmaps4rails.css'
= javascript_include_tag "gmaps4rails/gmaps4rails.base"
= javascript_include_tag "gmaps4rails/gmaps4rails.googlemaps"

= gmaps4rails(@vendor.to_gmaps4rails)

= yield :scripts

アプリケーション.js

...
//= require_tree ./templates
//= require_tree ./gmaps4rails

アプリケーション.css

//= require gmaps4rails

頭のソースコードをチェックしたところ、わかりました

<script src="/assets/gmaps4rails/gmaps4rails.base.js?body=1" type="text/javascript"></script>
<script src="/assets/gmaps4rails/gmaps4rails.googlemaps.js?body=1" type="text/javascript"></script>

ライトボックスにない場合、マップは正常に読み込まれます。どんな助けでも感謝します、ありがとう。

4

1 に答える 1

0

問題は次のとおりだと思います。

  • あなたはファンシーボックスをクリックします

  • gmaps4rails html とスクリプトを取得します

  • 外部スクリプトはオンザフライでロードされません

したがって、次のことを行う必要があります。

  • ルートビューに js の依存関係を手動で含めます

  • 外部 js 依存関係の組み込みを無効にします (必須ではありません)。

于 2012-07-21T22:17:42.597 に答える