我的模板中有输入字段,我想抓住每个按键和 通过removinf空格更新dom中的值 - trim。
我可以捕获事件并且我构建的函数正常工作 但输入文本字段中的值不会相应更新。
@HostListener('input', [ '$event.target.value' ])
input( value ) {
console.log('value! ' + value);
value = value.replace(/\s/gi, '');
console.log('value after trim ' + value);
return true;
}
有什么想法吗?
答案 0 :(得分:2)
一种更简单的方法,使用更少的代码,防止空间被打字,插入符号像已接受的解决方案一样移回空间。
<input (keydown.space)="$event.preventDefault()">
Plunker here
感谢回答here
答案 1 :(得分:1)
使用Angular时,请尝试实际使用Angular。
让[(ngModel)]="myInput"
和(ngModelChange)="cleanup()"
现在在ts文件中创建一个函数:
cleanup() {
this.myInput = this.myInput.replace(/ /g, '');
}
答案 2 :(得分:1)
您可以使用keyup
事件并调用方法来修剪您的值。 Typescript为您提供trim()
功能。
您的HTML将如下所示:
<input (keyup)="keyUp($event)">
...并在打字稿代码中定义方法:
keyUp(event){
event.target.value = event.target.value.trim();
}
链接到Plunker Demo