Как заставить трубу всегда работать, а не проверять изменения? - PullRequest
0 голосов
/ 29 мая 2019

У меня есть труба, которая находит все имена смайликов и заменяет их на иконку.Но проблема в том, что канал не меняет последний добавленный символ, пока я ничего не наберу.Например (: heart_eyes: ???) last: heart_eyes: не меняется до того, как я что-нибудь наберу.Как заставить трубу работать все время, вместо того, чтобы ждать каких-то изменений?

HTML:

<textarea matInput #newMessage color="primary" 
mwlTextInputElement
[formControl]="newMessageFormControl"
[value]="newMessageFormControl.value | q9Emoji"
></textarea>`


TS:
transform(value: any): any {
return this.replace(value);
}

replace(value) {
const emojisRegex = new RegExp(':(' + 
Object.keys(this.emojiObj).join('|') + '):', 'g');

return value.replace(emojisRegex, (match, text) => this.emojiService.unifiedToNative(this.emojiObj[text]));
}

1 Ответ

0 голосов
/ 29 мая 2019

используйте двустороннюю привязку вместо [formControl], это возвращает значение при каждом изменении символа, а также вы можете использовать (keyup) = "newMessage".

[(ngModul)]="newMessage"
...