标签: template-strings

一种缩小或丑化ES6模板字符串的方法

就像是

var tpl = `
<div> 
   template
   <span>string</span>
</div>
`
Run Code Online (Sandbox Code Playgroud)

会产生:

var tpl = "\n<div> \n  template\n  <span>string</span>\n</div>\n";
Run Code Online (Sandbox Code Playgroud)

我需要的是摆脱额外的空间和可能的换行符,就像所有其他html缩小工具一样.

所以它应该变得类似于:

"<div>template<span>string</span></div>"
Run Code Online (Sandbox Code Playgroud)

有没有什么方法能够明智地实现这一目标并且坚不可摧?

javascript ecmascript-6 template-strings

5
推荐指数
1
解决办法
2230
查看次数

PhpStorm - 用于破坏ES6模板字符串的Backticks`

在JavaScript文件中使用反引号时,例如:

var name = 'Tom';
var greeting = `hello my name is ${name}`;
Run Code Online (Sandbox Code Playgroud)

PhpStorm执行各种奇怪的自动格式化打破文件.

反引号随机出现或消失,对文件的其余部分进行注释.我在"设置"中禁用了"插入对引号"选项,但问题仍然存在.

有没有办法在PhpStorm版本2016.1.2中禁用反引号的自动格式化?

javascript backticks phpstorm ecmascript-6 template-strings

5
推荐指数
1
解决办法
729
查看次数

如何使用动态值插入标记模板字符串?

我想插入一个模板字符串(在其他地方定义):

const url = `www.example.com/${query}/current.json`;
Run Code Online (Sandbox Code Playgroud)

带有动态值(例如“es6”):

"www.example.com/es6/current.json"
Run Code Online (Sandbox Code Playgroud)

例如,如果我有这样的事情:

function makeRequest(url, query){
  // how do I generate my final url, here from the url and query?
}

// somehwere else:
makeRequest(url, query)
Run Code Online (Sandbox Code Playgroud)

带标签的模板字符串和标签函数是正确的方法吗?我见过很多不同的例子,但没有一个适合这种特殊情况。

javascript ecmascript-6 template-strings tagged-templates

5
推荐指数
1
解决办法
1357
查看次数

使用模板字符串和&amp;&amp;运算符反应条件类名

关于StackOverflow的许多问题都涉及到将条件类名应用于React组件。但是,对于这种特殊情况,我还没有一个好的答案:

我有一个基本的div,我想有条件地应用“ is-required”类。这是我的方法:

<div className={`some-class ${isRequired && 'is-required'}`}>
Run Code Online (Sandbox Code Playgroud)

这里的主要问题是,当isRequired为false时,我编译的HTML代码最终看起来像这样:

<div class='some-class false'>
Run Code Online (Sandbox Code Playgroud)

显然,我可以使用像这样的三元运算符,所以我可以返回一个空字符串:

<div className={`some-class ${isRequired ? 'is-required' : ''}`}>
Run Code Online (Sandbox Code Playgroud)

但是然后在已编译的HTML代码中,该类中包含了这个额外的随机空间,这不会引起任何渲染问题,但是我仍然不喜欢它:

<div class='some-class '>
Run Code Online (Sandbox Code Playgroud)

即便如此,我也可以删除“ someClass”之后的空格,并在“ isRequired”之前包含该空格,但是现在它更难阅读且感觉有点笨拙:

<div className={`some-class${isRequired ? ' is-required' : ''}`}>
Run Code Online (Sandbox Code Playgroud)

我听说过诸如类名之类的实用程序,但是我正在寻找一种不需要任何其他软件包的简单解决方案。

这里推荐的方法是什么?

javascript class-attributes reactjs template-strings

5
推荐指数
1
解决办法
3852
查看次数

如何防止字符'\'转义ES6模板字符串?

在ES6中,我可以这样做:

let myString = `My var: ${myVar}`;
Run Code Online (Sandbox Code Playgroud)

那将自动替换${myVar}为实际值myVar.完善.

但是,如果我有这样的东西怎么办?

let myString = `My var: \${myVar}`;
Run Code Online (Sandbox Code Playgroud)

角色\正在逃避${}构造.它只是一个常规字符串.

在这种情况下我怎么能\ 逃脱

javascript ecmascript-6 template-strings

4
推荐指数
2
解决办法
3809
查看次数

Vue.js 与 es6 模板字符串绑定

为什么我不能在 vue.js 中使用 es6 模板字符串v-bind:style

这有效:

<div :style="{transform:'translate('+x+'px,'+y+'px)'}">
Run Code Online (Sandbox Code Playgroud)

但这默默地失败了:

<div :style="{transform:`translate(${x}px,${y}px)`}">
Run Code Online (Sandbox Code Playgroud)

(我当然知道 es6 浏览器兼容性,并且使用支持模板字符串的浏览器)

ecmascript-6 template-strings vue.js

4
推荐指数
1
解决办法
3194
查看次数

如何在打字稿模板字符串上更改Notepad ++语法突出显示

使用Notepad ++在Typescript中编写模板字符串时,当我专注于模板字符串时,字符串前景变为白色,这与背景颜色形成了鲜明对比,我在“设置”选项卡中检查了Notepad ++样式配置器,但没有看到任何选项完全更改焦点时更改模板字符串的前景色。

当模板字符串没有焦点时,看起来不错


在此处输入图片说明


当它有焦点时,我几乎看不到字符串


在此处输入图片说明

我该如何改变?

syntax-highlighting notepad++ typescript template-strings

4
推荐指数
2
解决办法
7218
查看次数

用于标记模板文字的TemplateObject数组是否被它们的领域弱引用?

while (c) {
  tag`str0 ${e} str1`
}
Run Code Online (Sandbox Code Playgroud)

JavaScript运行时创建一个冻结的数组,Object.freeze(['str0 ', ' str1'])但具有附加.raw属性.

是否可以将该对象用作a中的键,WeakMap以避免每次循环时都必须基于数组重做工作?

const memoTable = new WeakMap
function tag(templateStrings, ...values) {
  let cached = memoTable.get(templateStrings)
  if (!cached) {
    // Compute cached and put it in the table for next time.
  }
  // Do something with cached and values
}
Run Code Online (Sandbox Code Playgroud)

12.2.9.3运行时语义:GetTemplateObject(templateLiteral)描述了如何缓存此值:

  1. 领域成为当前的领域记录.
  2. templateRegistry成为领域.[[TemplateMap]].

所以从tag上面的循环中使用它应该是相同的,这将是一个很好的属性的密钥.

在我看来,[[TemplateMap]]必须弱引用模板对象数组,否则

for (let i = 0; i …
Run Code Online (Sandbox Code Playgroud)

javascript weakmap ecmascript-6 template-strings tagged-templates

4
推荐指数
1
解决办法
104
查看次数

没有换行符的多行模板字符串?

我有这行代码:

 console.log(`now running each hook with name '${chalk.yellow(aBeforeOrAfterEach.desc)}', for test case with name '${chalk.magenta(test.desc)}'.`);
Run Code Online (Sandbox Code Playgroud)

问题是我必须将它放在我的 IDE 中的多行上,以使其适合(我使用 100 列)。当我将模板字符串放在多行上时,模板字符串将其解释为换行符,这不是我想要的。

所以我的问题是 - 如何在不使用换行符记录的情况下有多行模板字符串代码?

javascript node.js template-strings template-literals

3
推荐指数
1
解决办法
3924
查看次数

防止 ES6 模板字符串中的换行符

ESLint:403行超过最大行长120(max-len)

我有一个很长的字符串,我使用 ES6 模板字符串构建,但我希望它没有换行符:

var string = `Let me be the 'throws Exception’ to your 'public static void 
              main (String[] args)’. I will accept whatever you give me my ${love}.`
console.log(string);
Run Code Online (Sandbox Code Playgroud)

结果:

 Let me be the 'throws Exception’ to your 'public static void 
 main (String[] args)’. I will accept whatever you give me xxx.
Run Code Online (Sandbox Code Playgroud)

我的期望:

Let me be the 'throws Exception’ to your 'public static void main (String[] args)’. I will accept whatever you give me xxx.
Run Code Online (Sandbox Code Playgroud)

要求

  1. 我不能禁用 …

javascript ecmascript-6 template-strings

3
推荐指数
1
解决办法
3334
查看次数