加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Ruby每个循环都是纤细的

发布时间:2020-12-16 22:59:35 所属栏目:百科 来源:网络整理
导读:我希望能够通过 javascript循环实例var但我不太确定如何使它工作. javascript: -@spots.each do |spot| map.addMarker({ lat: "#{spot.latitude}",lng: "#{spot.longitude}",title: "spot",}); }); 我尝试了什么: 使用%@ spots.each do | spot | %GT;没有
我希望能够通过 javascript循环实例var但我不太确定如何使它工作.
javascript:
  -@spots.each do |spot|
      map.addMarker({
        lat: "#{spot.latitude}",lng: "#{spot.longitude}",title: "spot",});
  });

我尝试了什么:
使用<%@ spots.each do | spot | %GT;没有#{}的引号

解决方法

看来,一旦你进入javascript:slim块,你就不能再进行ruby循环了.

我能够得到这个主要是工作

- @spots.each do |spot|
  javascript:
    map.addMarker({
      lat: #{spot.latitude},lng: #{spot.longitude},title: "spot"
    });

但这会为每个addMarker调用创建单独的脚本标记,这看起来非常愚蠢.

您还可以尝试将数据作为JSON放在页面上,然后在Javascript中执行循环.像这样的东西:

javascript:
  var spots = #{raw @spots.to_json};
  var ii = 0;
  var nspots = spots.length;
  for(;ii<nspots;++ii) {
    theMap.addMarker(spots[ii]);
  }

你想确保在这个东西运行时地图可用,但我认为这可能会有所帮助.您还应该检查每个@spot的JSON格式.根据您如何设置JSON,每个点可能看起来像

{'spot': { 'latitude': ###,'longitude': ### } }

这意味着你必须取消引用循环中的对象.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读