标签: template-strings

如何从常规字符串构造模板字符串?

所以我有这个string:

var name = "Chaim";
var templateStr = "Hello, my name is ${name}";
Run Code Online (Sandbox Code Playgroud)

如何将其转换为模板字符串,以便结果等于:

var template = `Hello, my name is ${name}`;
Run Code Online (Sandbox Code Playgroud)

有没有办法以编程方式构建模板文字?

javascript ecmascript-6 template-strings

21
推荐指数
1
解决办法
7366
查看次数

是否可以在es6 Template-String中添加注释?

假设我们有一个多行es6 Template-String来描述例如请求的一些URL参数:

const fields = `
    id,
    message,
    created_time,
    permalink_url,
    type
`;
Run Code Online (Sandbox Code Playgroud)

有没有办法在反引号模板字符串中有注释?喜欢:

const fields = `
    // post id
    id,
    // post status/message
    message,
    // .....
    created_time,
    permalink_url,
    type
`;
Run Code Online (Sandbox Code Playgroud)

javascript backticks ecmascript-6 template-strings

16
推荐指数
3
解决办法
7542
查看次数

ES6标记模板实用性

我理解ES6 标记模板的语法.我看不到的是实用性.什么时候比传递一个对象参数更好,比如jQuery的AJAX中的设置?$.ajax('url', { /*this guy here*/ })

现在我只看到棘手的语法,但我不明白为什么我需要/使用它.我还发现TypeScript团队选择在其他重要功能之前实现它(在1.5中).标记字符串模板背后的概念是什么?

javascript ecmascript-6 template-strings tagged-templates

13
推荐指数
2
解决办法
582
查看次数

IntelliJ不断从JavaScript模板字符串中删除反引号

我想在模板字符串周围添加"反引号" .

每次我尝试将它们包裹在字符串周围时,IntelliJ都会一直删除它们.

任何人都知道为什么会发生这种情况以及如何解决这个问题?

我添加了我的.vue文件的一小段代码片段,其中发生了问题.想象一下,html,js和css写在一个组件( .vue)文件中,由唯一标签(模板,脚本和样式标签)分隔.我正在使用带有Mac OS X 10.5+键盘映射的德语键盘布局.

intelliJ删除反引号

import axios from "axios";
import 'vue-animate/dist/vue-animate.min.css';

export default {
  name: 'hello',
  data () {
    return {
      msg: `Service is <strong>ONLINE</strong> and <strong>READY</strong> to operate`,
      clicked: false,
      iconURL:"./../../static/img/meditate.svg",
      meditationAction: this.activateMeditation,
      backgroundImage: "",
      room:"Bad"

    }
  },
  methods:{
      activateMeditation () {
          this.clicked = !this.clicked;

          axios.get(`http://localhost:5005/${this.room}/shuffle/on`).then(response => {
              console.info("SUCCESSFULLY ACTIVATED SHUFFLE");

            axios.get(`http://localhost:5005/${this.room}/volume/20`).then(response => {
              console.info("SUCCESSFULLY SET VOLUME TO 20");

              axios.get("http://localhost:5005/bad/sleep/900").then(response => {
                console.info("SUCCESSFULLY SET SLEEP …
Run Code Online (Sandbox Code Playgroud)

javascript intellij-idea backticks ecmascript-6 template-strings

13
推荐指数
1
解决办法
638
查看次数

如何在ES6中嵌套模板字符串?

prefer-template从eslint 得到了一个错误.对于变通方法,我更改了我的代码,在require函数内部使用了一个模板字符串,该函数嵌套在url函数内部,如下所示:

{
  background: `url(${require(`../../assets/${edge.node.name.toLowerCase()}.png` center no-repeat`)})
}
Run Code Online (Sandbox Code Playgroud)

但是,这显然是错误的.这是我之前使用的代码,在require函数内部连接的加号而不是模板字符串.

{
  background: `url(${require('../../assets/' + edge.node.name.toLowerCase() + '.png')}) center no-repeat`
}
Run Code Online (Sandbox Code Playgroud)

是否可以定义嵌套模板字符串?

javascript ecmascript-6 template-strings template-literals

12
推荐指数
1
解决办法
1万
查看次数

你能把ES6模板字符串"愚蠢"到普通字符串吗?

我必须解决gettext识别ES6模板字符串的限制,并且我考虑将模板字符串的"非插值"作为编译步骤,以便在代码中只有"普通"字符串.

基本上我想要实现的是改变这一点

const adjective = 'wonderful'
const something = `Look, I am a ${adjective} string`

console.log(something)
> "Look, I am a wonderful string"
Run Code Online (Sandbox Code Playgroud)

进入这个

const adjective = 'wonderful'
const something = 'Look, I am a ${adjective} string'

console.log(something)
> "Look, I am a ${adjective} string"
Run Code Online (Sandbox Code Playgroud)

实现这一目标的一个残酷方法是使用sed,但它肯定不是更优雅(也可能是容易出错)

sed "s/\`/'/g" FILENAME
Run Code Online (Sandbox Code Playgroud)

想到任何更好,更清洁的想法?

javascript localization gettext ecmascript-6 template-strings

9
推荐指数
1
解决办法
1428
查看次数

打印带有换行符的 Javascript 模板字符串

有没有办法打印(使用console.log)javascript模板字符串,在这种情况下应用替换,但在打印时考虑换行符'\n'?

例如,当我有以下内容时:

let someVar = 'a';

let tsString = `here goes ${someVar} 
some other line
some other line`;

console.log(tsString);
Run Code Online (Sandbox Code Playgroud)

我希望它使用换行符打印,而不是打印 \n。

我认为模板字符串和常规字符串之间可能存在一些转换,但我找不到它。

*** 编辑:它发生在终端上,而不是浏览器上。运行 NodeJS 应用程序。抱歉没有指定,我假设我想要的是特定于 JS 的,而不是节点的(至少是解决方案)。

javascript debugging node.js template-strings

8
推荐指数
2
解决办法
437
查看次数

JavaScript ES6模板字符串的类型不一致

在测试JavaScript ES6的新模板字符串时(在Firefox中,如果它很重要),我注意到它们的类型有些不一致.

我定义了一个自定义函数,如下所示:

function f(a) {
    console.log(typeof(a));
    console.log(a);
}
Run Code Online (Sandbox Code Playgroud)

首先,我使用模板字符串周围的括号测试了"正常"功能.

f(`Hello, World!`)
Run Code Online (Sandbox Code Playgroud)

正如所料,这产生了一种类型stringHello, World!输出到控制台.

然后我调用函数速记,没有括号,并且发生了不一致.

f`Hello, World!`
Run Code Online (Sandbox Code Playgroud)

类型变为object,并Array [ "Hello, World!" ]输出到控制台.

使用第二种方法时,为什么模板字符串包含在数组中?这只是Firefox中的一个错误(毕竟ES6 一个新标准)还是出于某种原因预期会出现这种情况?

javascript ecmascript-6 template-strings

7
推荐指数
1
解决办法
186
查看次数

无法在node.js中使用模板字符串

根据MDN的说法,Template Strings 应该在Chrome中运行,并且扩展为Node.js所基于的V8; 但是当我尝试以下操作时出现语法错误:

var name = 'coffee';
console.log(`Hello, ${name}!`);
Run Code Online (Sandbox Code Playgroud)

运行node file.js只是结果SyntaxError: Unexpected token ILLEGAL

我需要启用某种标志才能使用此功能,还是只是在节点中没有实现?

javascript node.js template-strings

7
推荐指数
1
解决办法
1万
查看次数

Javascript条件在模板字符串中

有没有办法在模板字符串中做条件?

例如:

let x, y;

x = ...
y = ...

let templateString = `${x} ${y}`;
Run Code Online (Sandbox Code Playgroud)

如果y未定义,我不希望输出x之后的模板字符串中的空格.如何使用模板字符串实现这一目标?

这是唯一的方法吗?

 let templateString = `${x}${y ? ' ' + y : ''}`;
Run Code Online (Sandbox Code Playgroud)

javascript template-strings

7
推荐指数
5
解决办法
340
查看次数