2010-09-03 45 views
1

我有一個顯示Google地圖的頁面。我想用Javascript從我的數據庫中獲取幾個點,並將它們作爲標記放置在地圖上。因此,流程如下:rails-javascript交互的最佳做法?

  1. JavaScript使用參數調用Rails操作。
  2. Rails查詢數據庫。
  3. Rails返回響應。
  4. Javascript更新頁面(Rails無法做到這一點,因爲它必須知道JS地圖對象)。

實施此類方案的最佳實踐是什麼?我知道我可以使用Prototype Ajax.Request來調用Rails動作,但是我應該如何調用當Rails動作返回結果時更新頁面的Javascript函數?我應該更新一些隱藏的HTML並讓事件監聽器監聽它嗎?或者,還有更好的方法?

回答

3

你有幾個選項。

1)您的ajax請求可以是'腳本'類型,它允許您編寫一個您的Rails應用呈現的action_name .js文件。這可以訪問所有的頁面項目(它不可能有權訪問你的地圖對象,但是除非公開)

2)我的首選項是讓你的JavaScript查詢json數據(類型'json')然後允許您在JS中使用該數據。我不使用原型,但總體流量會是。

  • 用ajax初始化地圖
  • 查詢一些JSON數據
  • 軌reponds_to做(即經/緯度位置。)| F | f.json {render:json => some_hash}結束
  • 在您的ajax回調函數中(回到JavaScript),迭代json數據並適當地爲您的地圖添加點。 (或做任何你喜歡的事情)