0

指定された住所からの距離でいくつかの場所を表示するリストがあります。このリストは、フィルタリング システムの使用時に ajax によって更新されます。私の部分的な _place.html.haml では、これを使用します。

- distance = Gmaps4rails.destination({:from => session[:address], :to => place.full_address}, options={}, output='pretty')
    %p= "Distance: #{distance.first["distance"]["text"]} (#{distance.first["duration"]["text"]})"

ajax (これに pjax を使用) を使用してフィルター フォームを送信すると、ajax 呼び出しは正しく行われますが、ajax を介してパーシャルをレンダリングした後、関数 Gmaps4rails.destination の呼び出し後にページが完全に ( ajax なしで) 更新されます。そのため、ajax 呼び出し/関数にブレーキがかかります。

部分的な _place.html.haml からこのコードを削除すると、ajax フィルタリング機能が完全に機能し、ページ全体が更新されません。これを ajax で動作させるには、何を変更する必要がありますか?

4

1 に答える 1

0

申し訳ありませんが、問題を完全には理解できませんでしたが、説明によると、pjax を使用していて、フィルター条件でマップを表示しているようです。

また、1 つのアプリケーションで pjax と google-map を使用しました。

シナリオ: 1 つのページに 2 つのタブがあり、タブ スイッチで pjax を使用して同じ div 内にコンテンツをロードしました。マップを表示したい両方のタブで、両方のタブが同じマップ コンテナーを使用していたため、pjax は正常に実行されましたが、マップが読み込まれませんでした。(マップマーカーをロードするために、実行されていたが適切に反映されていないajax呼び出しを追加しました。)

解決策: pjax:end イベントを追加する

$("#your-div").bind 'pjax:end', ->
  # load you markers or call gmap related event

したがって、pjax が完了すると、マップ関連のイベントが発生します。

これは、問題の直接的な解決策ではない可能性があります。しかし、これが役立つことを願っています。ありがとう。

于 2013-11-07T18:59:26.723 に答える