我有一个显示 Google map 的页面。我想使用 Javascript 从我的数据库中获取几个点并将它们作为标记放置在 map 上。所以流程是:
- Javascript 使用参数调用 Rails 操作。
- Rails 查询数据库。
- Rails 返回响应。
- Javascript 更新页面(Rails 不能这样做,因为它必须知道 JS 映射对象)。
目前实现这种场景的最佳实践是什么?我知道我可以使用 Prototype Ajax.Request 来调用 Rails 操作,但是我应该如何调用在 Rails 操作返回结果时更新页面的 Javascript 函数?我应该更新一些隐藏的 HTML 并让事件监听器监听它吗?或者有更好的方法吗?
最佳答案
您有几个选择。
1) 您的 ajax 请求可以是“脚本”类型,这将允许您编写一个 action_name
.js 文件以供您的 Rails 应用程序呈现。这可以访问您的所有页面项目(除非它是公开的,否则它不太可能访问您的 map 对象)
2) 我的偏好是让您的 javascript 查询 json 数据(类型“json”),这样您就可以在 JS 中随意使用该数据。我不使用原型(prototype),但一般流程是这样的。
- 初始化你的 map
- 使用 ajax 查询一些 json 数据(即带有经/纬度的位置)
- rails reponds_to do |f| f.json { render :json => some_hash} end
- 在您的 ajax 回调中(返回 javascript),遍历 json 数据并适本地向您的 map 添加点。 (或做任何你喜欢的事)
关于javascript - rails-javascript 交互的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3636110/