在iOS Safari

时间:2017-05-25 07:02:08

标签: javascript string safari ecmascript-6 babel

我遇到模板字符串文字的问题。该代码在Chrome,Firefox,Edge上完美运行,但无法在Safari上执行。

enter image description here

这是我用来插入外部HTML模板的插值字符串扩展。

enter image description here

这是babel编译的代码无法正确执行

enter image description here

是否有任何可以在Safari浏览器上解决此错误的有效填充?或者一种重写此插值字符串扩展名以使用普通旧字符串文字的方法?

1 个答案:

答案 0 :(得分:1)

解决了它。

显然胖箭头功能 song =>使用html-loader从html模板导入时,未编译{...} 。将其更改为良好的旧功能(歌曲){return ...} 样式语法,它可以正常工作。丑陋但工作。希望找到一种从html模板转换es6的方法。

<!--${songs.map(song => `-->
${songs.map(function(song) { return `
<div data-menuanchor="${song.anchor}" class="node song">
    <div class="label">${song.number}</div>
    <div class="timer"></div>
    <div class="line">
        <div class="lineProgress"></div>
        <div class="lineDefault"></div>
    </div>
    <a href="#${song.anchor}" class="link">
        <div class="linkDefault"></div>
        <div class="linkHover"></div>
        <div class="linkBass rythm-medium"></div>
    </a>
    <div class="actions">
        <div class="playBtn"><i class="icon bg-play"></i></div>
        <div class="pauseBtn"><i class="icon bg-pause"></i></div>
    </div>
</div>
`}).join('')}
<!--`).join('')}-->