Angular 使用短键加载角度组件

Angular 使用短键加载角度组件,angular,angular-material,Angular,Angular Material,我需要使用短键来加载角度组件 我想用于此目的的短键是“” 如果加载角度分量时按了句点,则单击“.”字符,我要加载角度分量 但是,我希望确保在表单字段上输入任何值时不会触发角度组件 简言之,只有在任何特定表单字段上未激活时才应触发按键。我应该检查什么条件,以确保按下该键时,用户在该组件的任何表单字段上均未处于活动状态 以下是我必须收听keydown事件并识别按下的键的代码 @HostListener('document:keydown', ['$event']) handleKeyboardEve

我需要使用短键来加载角度组件

我想用于此目的的短键是“”

如果加载角度分量时按了句点,则单击“.”字符,我要加载角度分量

但是,我希望确保在表单字段上输入任何值时不会触发角度组件

简言之,只有在任何特定表单字段上未激活时才应触发按键。我应该检查什么条件,以确保按下该键时,用户在该组件的任何表单字段上均未处于活动状态

以下是我必须收听keydown事件并识别按下的键的代码

@HostListener('document:keydown', ['$event'])
handleKeyboardEvent(event: KeyboardEvent) {
alert('Key pressed was :::: ' + (event.key === "."))
alert('Key was pressed');
}

我想您可以在目标为
body
时检查用户是否正在按period,因此您可以尝试以下操作:

@HostListener('document:keydown',['$event']))
handleKeyboardEvent(事件:KeyboardEvent){
if(event.key==”&((event.target作为HTMLElement.tagName==“BODY”)){
警报('period pressed out fields!')
}
}

演示:

我想你可以检查一下,当目标是
body
时,用户是否正在按period,因此你可以尝试以下操作:

@HostListener('document:keydown',['$event']))
handleKeyboardEvent(事件:KeyboardEvent){
if(event.key==”&((event.target作为HTMLElement.tagName==“BODY”)){
警报('period pressed out fields!')
}
}

演示:

您可以尝试以下内容:

@HostListener('document:keydown',['$event']))
handleKeyboardEvent(事件:KeyboardEvent){
如果(event.target.tagName==='INPUT'){
log('input clicked');
返回;
}
log('按下的键是::'+(event.Key==”))
console.log('按键');
}

您可以尝试以下方法:

@HostListener('document:keydown',['$event']))
handleKeyboardEvent(事件:KeyboardEvent){
如果(event.target.tagName==='INPUT'){
log('input clicked');
返回;
}
log('按下的键是::'+(event.Key==”))
console.log('按键');
}