2011-12-25 91 views
1

我是一个相对noob,但一直在我的项目中集成gmaps4rails乐趣。我遇到了一个可能是宝石缺陷的问题,或者可能只是我的无知,但我希望有人能指出我正确的方向。addMarkers(@marker)不适用于动态内容

我有一个包含jquery选项卡UI元素的主页。一个选项卡包含故事的列表视图,第二个选项卡包含这些故事的地图视图。我在地图视图中使用gmaps4rails。

在页面上重新加载符合我的搜索条件的所有故事会按预期出现在我的列表视图和地图视图中。我尝试使用Gmaps.map.addMarkers()时出现问题。

比方说,我添加一个新的故事,符合我的搜索参数。我的故事#创建动作在@story变量如预期,然后我设置@marker变量,如下所示:

@markers = @story.to_gmaps4rails 

然后我create.js.erb视图适当地插入@story进入我的列表选项卡视图。不幸的是,Gmaps.map.addMarkers(@marker)不会将标记插入到地图标签视图中。

下面是一些更相关的代码:

story.rb:

class Story < ActiveRecord::Base 

    acts_as_api 
    acts_as_gmappable :process_geocoding => false 

    def gmaps4rails_marker_picture 
    { 
     "rich_marker" => "<div class='story_marker' id=marker_for_story_#{self.id } ><img height='30' width='30' src='http://farm4.static.flickr.com/3212/3012579547_097e27ced9_m.jpg'/></div>" 
    } 
    end 

create.js.erb:

$("#stories_list").prepend("<%=raw escape_javascript(render(@story)) %>"); //put new story in list view 
<%= logger.debug("!!!!!!!!!! gmaps json array: #{@marker}")%> 
Gmaps.map.addMarkers(@marker); 

home.html.erb:

<div id="map-tab"> 
    <%= yield :head %> <!-- for gmaps4rails --> 
    <%= gmaps("markers" => { "data" => @json, "options" => { "clusterer_gridSize" => 5, "clusterer_maxZoom" => 13 } }) %> 
</div> 

当我在调用后检查控制台create.js.erb我看到@marker确实包含正确的json数组信息。我可以直接从控制台复制这些信息,然后使用萤火虫控制台运行addMarkers(复制的json数组信息),并且标记按预期显示。另外,我可以在我的create.js.erb文件中修改addMarkers命令,使其看起来像下面这样,也可以工作:Gmaps.map.addMarkers([{"lng": "<%[email protected]%>", "lat": "<%[email protected] %>"}]); 但是,我宁愿使用to_gmaps4rails助手。

感谢您的任何帮助,您可以给我解决这个谜,节日快乐!

回答

0

我想你应该简单地替换:

Gmaps.map.addMarkers(@marker); 

有了:

Gmaps.map.addMarkers(<%= @marker %>); 
+0

我看到这个答案,并认为,当然。 。 。我多么愚蠢。不幸的是,我仍然遇到了由答案产生的转义字符问题,并希望你能帮助我。如果我使用答案,我的帖子请求会返回js中的各种转义字符(例如“Gmaps.map.addMarkers [" description ":。。”)。当我使用“Gmaps.map.addMarkers <%= raw escape_javascript @markers%>;“,但我仍然在json中有反斜杠。 (例如,Gmaps.map.addMarkers [{\“description \”:。。。)我如何正确渲染它? – 2011-12-26 22:33:25

+0

刚刚尝试过,仅仅是:'<%= raw @json%>'呈现有效的json。 – apneadiving 2012-01-01 14:02:18

相关问题