angular - 如何使管道始终工作,而不是检查更改?
问题描述
我有一个管道可以找到所有表情符号名称并将它们替换为图标。但问题是管道不会更改添加的最后一个字符,直到我输入任何内容。例如 (: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]));
}
解决方案
使用双向绑定代替 [formControl],这会在每个字符更改时返回一个值,您也可以使用 (keyup)="newMessage"。
[(ngModel)]="newMessage"
推荐阅读
- javascript - NodeJs - Redis 缓存的流到字符串转换问题
- javascript - 接受输入字段中的前导数字
- javascript - 如何在没有额外标记的情况下在移动视图上显示图标而不是文本?
- r - 如何在轴标签上的值之间放置空格
- amazon-web-services - 如何使用 AWS Step 函数将路径参数传递给 AWS api 网关?
- angular - Angular中父组件下的动态子组件
- css - Chrome 扩展程序“Pesticide”在我正在开发的本地站点上不起作用
- css - 如何在 React Hooks 中使用 Bulma 扩展 bulma-collapsible
- linearmodels - 在线性模型中,*.f_statistic 零假设真的是“所有参数前常数不为零”吗?
- java - 如何从类别树中获取类别成员的地址?