我正在使用google-maps-for-rails(gmap4rails)。gem具有创建可在javascript中使用的数组的方法。
hash = Gmaps4rails.build_markers(@users) do |user, marker|
marker.lat user.latitude
marker.lng user.longitude
end
结果如下:
[{:lat=>33.462209, :lng=>-86.812519, :infowindow=>"hello"}]
或更容易阅读
[
{
:lat => 33.462209,
:lng => -86.812519,
:infowindow => "hello"
}
]
我正在尝试在coffeescript中使用它,但是在哪里我从控制器中的变量将此数组传递到coffeescript中。(我将Paloma JS用于特定于页面的js,您可以在其中访问coffeescript中的控制器变量。)
我试图将数组转换为JSON并用来gsub
替换字符,但遇到了困难。
具体来说,我尝试将其转换为JSON,然后删除了逗号hash.to_json.gsub(/,/, '')
,即输出
[{"lat":33.462209"lng":-86.812519"infowindow":"hello"}]
我想我需要删除括号,{
并}
在这里,以及可能包括的CoffeeScript适当的线凹痕。
最后,它应如下所示:
[
lat: 33.462209
lng: -86.812519
infowindow: "hello"
]
有任何想法吗??感谢您的时间。
我试图将数组转换为JSON,并使用gsub替换字符,但是遇到了困难。
您应该按原样使用所生成的JSON。这是完全有效的CoffeeScript。完全没有理由尝试从中删除任何内容。
无论如何,您尝试制作的CoffeeScript实际上是相同的。这...
[
lat: 33.462209
lng: -86.812519
infowindow: "hello"
]
确实是[{ lat: ..., lng: ..., }]
,带有逗号和{}
隐藏的,但在语法上仍然存在。CoffeeScript允许您{}
在定义对象文字时省略,但是它仍然是对象文字,并且通过将其从JSON中剥离而不会获得任何收益。无论哪种方式,您生成的结构都是相同的:一个数组,包含一个元素,这是一个对象,包含属性lat / lng / infowindow。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句