新手问题 现在 Rails 怎么写 JavaScript 的 template literals?

cqcn1991 · 发布于 2017年05月07日 · 最后由 xfstart07 回复于 2017年05月08日 · 608 次阅读
3873

因为涉及到地图,所以要在js里写一个marker的html template

比如下图里面的marker

现在写来是这样子,非常变扭

var arrayLength = bookGeoInfoArray.length;
for (var i = 0; i < arrayLength; i++) {
  var bookGeoInfo = bookGeoInfoArray[i];
  var myIcon = L.divIcon({
    className: 'map-icon',
    html: '<div class="book-num ' +  bookGeoInfo.marker_id + '">'+ bookGeoInfo.number + '</div>'+
    '<h6 class="item-info">'+bookGeoInfo.item+'</h6>'
  });
  L.marker(bookGeoInfo.position, {icon: myIcon}).bindPopup("I am a red leaf.").addTo(mymap);
}

貌似现在ES6可以写 template literals, 不需要再用这种+号连接了。

查了一下,只有以前的一些解决方案,不过最近Rails 不是发5.1了?不知道现在应该怎么解决这个问题?

共收到 6 条回复
4375

你用webpacker管理js的话,直接用 `${}` 就行了,自带 babel-loader 会转换的

3873
4375saiga 回复

主要是看到webpack还不是默认选项,不知道官方推荐不推荐....

2141

如果不使用 webpack ,可以添加 Gem sprockets-es6 来支持 es6 语法,不过我觉得应该 webpack 是趋势了

1

CoffeeScript

1107
2141xfstart07 回复

可以用 sprockets 的 4.0.0.beta4 版本,那个 sprockets-es6 gem 说明就是为 4.0 做一些技术验证的,不过话说 Rails 宣布拥抱 JS 之前 sprockets 的迭代慢很多了,4.0 难产有两年了

2141
1107jasl 回复

确实很慢,我用 sprockets-es6 都一年多了,sprockets 兼容 ES6 还是 bete 版😅

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册