在javascript和elixir中使用backticks

在javascript和elixir中使用backticks,javascript,elixir,phoenix-framework,Javascript,Elixir,Phoenix Framework,接下来是关于长生不老药和凤凰框架的教程。代码应该是 template.innerHTML = ` <a href="#" data-seek="${this.esc(at}"> <b>${this.esc(user.username)}</b>:${this.esc(body)} </a>` template.innerHTML=` ` 尽管这会在第二行产生编译错误。如果我

接下来是关于长生不老药和凤凰框架的教程。代码应该是

template.innerHTML = `
            <a href="#" data-seek="${this.esc(at}">
            <b>${this.esc(user.username)}</b>:${this.esc(body)}
            </a>`
template.innerHTML=`
`
尽管这会在第二行产生编译错误。如果我将其更改为:

template.innerHTML = 
            '<a href="#" data-seek="${this.esc(at}">' +
            '<b>${this.esc(user.username)}</b>:${this.esc(body)}' +
            '</a>'
template.innerHTML=
''

这样就不会有错误,但它将显示准确的字符串,而不会替换${}部分。不知道发生了什么。在第一次剪接中,围绕字符串的“引号”应该是回勾还是其他什么?看我正在读的书很难说。

ES6允许使用反勾号指定字符串,在其中可以有插值表达式。因此,任何表达式都可以放在美元符号后面的括号中,即la
${}
,该代码的返回值将显示在字符串中

如果编译器不能处理这个相对较新的特性,那么第二次修复它的尝试还应该包括从字符串中提取表达式并分别对它们进行编码

template.innerHTML = 
        '<a href="#" data-seek="' + this.esc(at + '">' +
        '<b>' + this.esc(user.username) + '</b>:' + this.esc(body) +
        '</a>'

ES6允许使用反勾号来指定可以包含插值表达式的字符串。因此,任何表达式都可以放在美元符号后面的括号中,即la
${}
,该代码的返回值将显示在字符串中

如果编译器不能处理这个相对较新的特性,那么第二次修复它的尝试还应该包括从字符串中提取表达式并分别对它们进行编码

template.innerHTML = 
        '<a href="#" data-seek="' + this.esc(at + '">' +
        '<b>' + this.esc(user.username) + '</b>:' + this.esc(body) +
        '</a>'

请务必阅读错误消息并尝试理解它们。如果我像这样创建了一个代码示例:

var template=document.createElement(“div”);
var at=“地点”;
var body=“fancy”;
var user={username:“joe”};
var esc=s=>s;
template.innerHTML=`

`
始终阅读错误消息并尝试理解它们。如果我像这样创建了一个代码示例:

var template=document.createElement(“div”);
var at=“地点”;
var body=“fancy”;
var user={username:“joe”};
var esc=s=>s;
template.innerHTML=`

`
Javascript没有多行字符串,所以这并不奇怪,反勾号是ES6模板的一部分,省略反勾号意味着您不能使用模板。@adeneo-多行字符串是通过模板字符串引入ES6中的Javascript的。在提到es6模板字符串的同一句话中,您说JavaScript中没有多行字符串似乎是错误的。@gilly3-模板文本将允许多行字符串插值,所以好吧,问题可能只是
this.esc()缺少括号
模板中的函数。Javascript没有多行字符串,所以这并不奇怪,反勾号是ES6模板的一部分,省略反勾号意味着您不能使用模板。@adeneo-多行字符串是通过模板字符串引入ES6中的Javascript的。在提到es6模板字符串的同一句话中,您说JavaScript中没有多行字符串似乎是错误的。@gilly3-模板文字将允许多行字符串插值,所以好吧,问题可能只是模板中的
this.esc()
函数缺少括号。哇,完全没有注意到这一点。这个错误是前面的一个语法错误,因为我没有看到它。谢谢哇,完全错过了。这个错误是前面的一个语法错误,因为我没有看到它。谢谢哇,完全错过了。这个错误是前面的一个语法错误,因为我没有看到它。谢谢哇,完全错过了。这个错误是前面的一个语法错误,因为我没有看到它。谢谢