В чем причина ставить знак доллара перед интерполяцией в Angular? - PullRequest
0 голосов
/ 19 апреля 2020

Я прохожу учебник и нахожу код ниже. Я понимаю, что поставить знак доллара в качестве суффикса означает, что его можно наблюдать. Но с какой стати поставить знак доллара перед 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'))
  );
}

Ответы [ 2 ]

0 голосов
/ 19 апреля 2020

Это называется литералы шаблона или строки шаблона. Это особенность JavaScript, а не спецификация c до angular. Чтобы узнать больше, посетите https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals.

Используя строку шаблона, вы можете использовать переменную внутри строки. Для использования этого `` (backticks) используется вместо кавычек ('' или ""). Для примера:

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

Если вы используете традиционный подход, тогда потребуется конкатенация. str2 = str + ' World';

0 голосов
/ 19 апреля 2020

Это javascript интерполяция строк. Позволяет интерполировать выражения в строковые литералы.

const myVar = 'World!';

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

console.log(string1, string2);

Знак доллара для наблюдаемых свойств - это просто соглашение, оно не синтаксическое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...