Из дочернего компонента, используя угловой вывод, я выдаю строковое значение. Я хочу, чтобы в родительском компоненте я получил эту строку и объединил ее с существующим значением.
родительский компонент имеет переменную с именем customValue: string;
Теперь этот кусок кода работает customValue = customValue+ $event +' '
<parent>
<child (stringValue) = "customValue = customValue+ $event +' '"> </child>
</parent>
Но если я попытаюсь объединить вот так: customValue += $event +' '
, то это не сработает.
<parent>
<child (stringValue) = "customValue += $event +' "> </child>
</parent>
Может кто-нибудь, пожалуйста, скажите мне, почему вышеуказанная конкатенация строк не работает?
обратите внимание: я действительно не хочу создавать функцию. Есть ли способ, которым, не создавая функцию, я могу достичь того, чего хочу?
Ой, извините, я не прочитал последнюю часть перед моим последним комментарием: «Я не хочу создавать функцию». Я не понимаю, почему это не нормально. Не могли бы вы уточнить причину?
На самом деле особой причины нет. Я подумал, что было бы чище не создавать функцию для простой конкатенации строк. @Pac0
@Kazi О, я могу понять это чувство, но после некоторого использования Angular я бы предложил обратное. Код в шаблоне противоречит цели отделения пользовательского интерфейса от логики компонента. Кроме того, вы получаете более быструю обратную связь во время компиляции при написании кода в методе, чем непосредственно в шаблоне, где ваш код представляет собой просто строки.
Не допускается следующий синтаксис выражений JavaScript и шаблонов:
новый
операторы инкремента и декремента, оператор ++ и --
присваивание, например += и -=
побитовые операторы, такие как | и & оператор
Шаблоны не поддерживают некоторые функции JavaScript
Таким образом, ваша проблема действительно более «косметическая» (размер кода привязки вывода) и чтобы избежать повторения имени, верно? Как насчет создания функции для этого? вдохновлено stackoverflow.com/questions/35731610/… : в компоненте:
public concatenateValue(field, toBeAdded) { this[field] += toBeAdded + ' '; }
в шаблоне(stringValue) = "concatenateValue('customValue', $event)"