【发布时间】:2017-03-31 03:26:55
【问题描述】:
我的 HAML 视图末尾有这个 JS:
:javascript
function initMap() {
var map = new google.maps.Map(document.getElementById('leadsMap')),
markers = [],
bounds = new google.maps.LatLngBounds();
- @leads.each do |lead|
- next unless lead.latitude && lead.longitude
var marker = new google.maps.Marker({
position: {lat: #{lead.latitude}, lng: #{lead.longitude}},
map: map
});
markers.push(marker);
for (var i = 0; i < markers.length; i++) {
bounds.extend(markers[i].getPosition());
}
map.fitBounds(bounds);
}
如何解析@leads 以便循环正常工作?就目前而言,我收到 undefined local variable or method 'lead' 错误。
【问题讨论】:
-
(a) 将 JavaScript 移动到单独的文件并 (b) 将
@leads序列化为 JSON(可能首先过滤掉缺少坐标的条目)并处理,难道不是更有意义吗?那个 JavaScript 数据到你的 JavaScript 函数?像你一样尝试混合语言几乎总是会让人流泪和沮丧,即使你能做到这一点,它也往往会变成一个丑陋的烂摊子。 -
是的,我想我会暂时把它变成部分。可能是更智能的设计。
标签: javascript ruby-on-rails ruby haml ruby-on-rails-5