Angular插值前加美元符号的原因是什么?

What is the reason to put a dollar sign in front of interpolation in Angular?

我正在浏览教程并找到下面的代码。我知道将美元符号作为后缀意味着它是可观察的。但是为什么要在this.log(`updated hero id=${hero.id}`)前面加一个美元符号呢?

/** PUT: update the hero on the server */
updateHero(hero: Hero): Observable<any> {
  return this.http.put(this.heroesUrl, hero, this.httpOptions).pipe(
    tap(_ => this.log(`updated hero id=${hero.id}`)),
    catchError(this.handleError<any>('updateHero'))
  );
}

这是javascript字符串插值。它允许您将表达式插入字符串文字。

const myVar = 'World!';

const string1 = 'Hello, ' + myVar;
const string2 = `Hello, ${myVar}`;

console.log(string1, string2);

可观察属性的美元符号只是一种约定,不符合句法。

它被称为模板文字或模板字符串。它是 JavaScript 的特性,并不特定于 angular。要了解更多信息,请访问 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

使用模板字符串,您可以在字符串中使用变量。为了使用这个``(反引号)而不是引号(''或“”)。 例如:

const str = 'Hello';
const str2 = `${str} world`; 
//Output will be Hello World
console.log(str2);

如果您使用传统方法 然后需要串联。 str2 = str + ' World';