我将多行变量更改为Template Literals,这很了不起,但是后来我注意到,我所做的缩进已使用对原始代码进行的缩进转换(最小化)为\n。我该如何避免呢?

前任:

var $div = $(`<div class='proj' id='projects'>
                 <div class='bot-nav'>${txt}</div>
           </div>`);

它被转换为:
var $div = $("<div class='proj' id='projects'>\n                 <div class='bot-nav'>"+txt+"</div>\n           </div>");

我想要这个:
var $div = $("<div class='proj' id='projects'><div class='bot-nav'>"+txt+"</div></div>");

有什么办法吗?

最佳答案

虽然可以使用.replace(如其他答案中所建议的那样)可以工作,但这并不是很酷的全新 Shiny 方式;)

我认为您正在寻找的是ES2015中引入的文字标记函数(又名“标记模板”)。

这里有一堆:

https://github.com/declandewet/common-tags

您可能需要 oneLine (或oneLineTrim):

oneLine`
  foo
  bar
  baz
`
// "foo bar baz"

注意:oneLine显然在内部使用replace

关于javascript - ES6模板文字-从字符串中删除\n,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40142512/

10-10 17:34