Dường như khi bạn đang ở trong khối mỏng javascript:
, bạn có thể không còn làm vòng ruby.
tôi đã có thể có được điều này để làm việc chủ yếu
- @spots.each do |spot|
javascript:
map.addMarker({
lat: #{spot.latitude},
lng: #{spot.longitude},
title: "spot"
});
nhưng mà làm cho thẻ script riêng biệt cho mỗi addMarker
cuộc gọi mà có vẻ khá ngớ ngẩn.
Bạn cũng có thể thử đặt dữ liệu trên trang dưới dạng JSON và sau đó thực hiện vòng lặp trong Javascript. Một cái gì đó như thế này:
javascript:
var spots = #{raw @spots.to_json};
var ii = 0;
var nspots = spots.length;
for(;ii<nspots;++ii) {
theMap.addMarker(spots[ii]);
}
Bạn muốn chắc chắn rằng theMap
có sẵn vào thời gian cụ này chạy, nhưng tôi nghĩ rằng điều này có thể làm các trick. Bạn cũng nên kiểm tra định dạng JSON của mỗi @spot. Tùy thuộc vào cách bạn đã thiết lập JSON, mỗi vị trí có thể trông giống như
{'spot': { 'latitude': ###, 'longitude': ### } }
có nghĩa là bạn sẽ phải dereference các đối tượng trong các vòng lặp.
Nguồn
2013-11-09 22:23:24
Nó có hoạt động không? –
Có vẻ tốt với tôi. Lỗi hoặc vấn đề là gì? –
biến cục bộ không xác định hoặc phương pháp 'tại chỗ ' – trigun0x2