onChange() 应该匹配最后输入的字母表,而不是每次都匹配整行
onChange() should match the last typed alphabet, not the entire line every time
说明: 我正在使用 onChange 函数来查找是否有人键入 @
问题: 当我打字时,它每次都会检查整行,这使得打字很慢。我想修改我的代码,使其只检查最后输入的字母表。
我的代码:
home.html
<ion-textarea #chat [(ngModel)]="tag" rows="1" cols="10" placeholder="Type your message..." (ngModelChange)='onChange($event)'></ion-textarea>
home.ts
onChange(eve)
{
if(eve.match(/@/g).length > 0)
这让打字体验变慢了,因为它每次都检查整行,我希望它应该只检查最后输入的字母表。
您可以试试这个来查找最后的字母表。
onChange(eve) {
eve = eve.split('')[eve.length-1]
if(eve.match(/@/g).length > 0)
...
}
您可以使用按键事件:
<input (keydown)="onKeydown($event)">
那你可以这样处理:
onKeydown(event) {
if(event.key === "@")
{
// your code
}
}
但是如果您只想检查字符串中的最后一个字符是否有 onChange,那么您可以这样做:
if(eve.slice(-1) === '@') {}
这样试试:
模板:
<ion-textarea #chat [(ngModel)]="tag" rows="1" cols="10" placeholder="Type your message..." (keydown)="onType($event)"></ion-textarea>
打字稿:
onType(event) {
if (event.key == '@') {
console.log("@ typed")
}
}
说明: 我正在使用 onChange 函数来查找是否有人键入 @
问题: 当我打字时,它每次都会检查整行,这使得打字很慢。我想修改我的代码,使其只检查最后输入的字母表。
我的代码:
home.html
<ion-textarea #chat [(ngModel)]="tag" rows="1" cols="10" placeholder="Type your message..." (ngModelChange)='onChange($event)'></ion-textarea>
home.ts
onChange(eve)
{
if(eve.match(/@/g).length > 0)
这让打字体验变慢了,因为它每次都检查整行,我希望它应该只检查最后输入的字母表。
您可以试试这个来查找最后的字母表。
onChange(eve) {
eve = eve.split('')[eve.length-1]
if(eve.match(/@/g).length > 0)
...
}
您可以使用按键事件:
<input (keydown)="onKeydown($event)">
那你可以这样处理:
onKeydown(event) {
if(event.key === "@")
{
// your code
}
}
但是如果您只想检查字符串中的最后一个字符是否有 onChange,那么您可以这样做:
if(eve.slice(-1) === '@') {}
这样试试:
模板:
<ion-textarea #chat [(ngModel)]="tag" rows="1" cols="10" placeholder="Type your message..." (keydown)="onType($event)"></ion-textarea>
打字稿:
onType(event) {
if (event.key == '@') {
console.log("@ typed")
}
}