Конкатенация строк из вывода Angular испускает, не работает должным образом

Из дочернего компонента, используя угловой вывод, я выдаю строковое значение. Я хочу, чтобы в родительском компоненте я получил эту строку и объединил ее с существующим значением.

родительский компонент имеет переменную с именем customValue: string;

Теперь этот кусок кода работает customValue = customValue+ $event +' '

<parent>
 <child (stringValue) = "customValue = customValue+ $event +' '"> </child>
</parent>

Но если я попытаюсь объединить вот так: customValue += $event +' ', то это не сработает.

<parent>
 <child (stringValue) = "customValue += $event +' "> </child>
</parent>

Может кто-нибудь, пожалуйста, скажите мне, почему вышеуказанная конкатенация строк не работает?

обратите внимание: я действительно не хочу создавать функцию. Есть ли способ, которым, не создавая функцию, я могу достичь того, чего хочу?

Таким образом, ваша проблема действительно более «косметическая» (размер кода привязки вывода) и чтобы избежать повторения имени, верно? Как насчет создания функции для этого? вдохновлено stackoverflow.com/questions/35731610/… : в компоненте: public concatenateValue(field, toBeAdded) { this[field] += toBeAdded + ' '; } в шаблоне (stringValue) = "concatenateValue('customValue', $event)"

Pac0 10.12.2020 13:28

Ой, извините, я не прочитал последнюю часть перед моим последним комментарием: «Я не хочу создавать функцию». Я не понимаю, почему это не нормально. Не могли бы вы уточнить причину?

Pac0 10.12.2020 13:30

На самом деле особой причины нет. Я подумал, что было бы чище не создавать функцию для простой конкатенации строк. @Pac0

Kazi 10.12.2020 14:11

@Kazi О, я могу понять это чувство, но после некоторого использования Angular я бы предложил обратное. Код в шаблоне противоречит цели отделения пользовательского интерфейса от логики компонента. Кроме того, вы получаете более быструю обратную связь во время компиляции при написании кода в методе, чем непосредственно в шаблоне, где ваш код представляет собой просто строки.

Pac0 10.12.2020 15:22
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
2
4
88
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Из угловых документов:

Не допускается следующий синтаксис выражений JavaScript и шаблонов:

  • новый

  • операторы инкремента и декремента, оператор ++ и --

  • присваивание, например += и -=

  • побитовые операторы, такие как | и & оператор

Шаблоны не поддерживают некоторые функции JavaScript

Другие вопросы по теме