Angular 5 keyup事件被触发两次

时间:2018-02-15 08:45:43

标签: javascript angular typescript events

所以我有一个非常简单的应用程序,文字上只是一个简单的hello世界,除此之外我还为组件添加了bootstrap和ng-bootstrap。

在一个ts文件中,我有以下代码:

showMeTheKey(event: KeyboardEvent) {
    console.log(event);
}

在html页面上,我有以下代码:

<input (keyup)="showMeTheKey($event)">

每当我按一个键时,这会导致控制台上出现两个事件,事件是相同的,除了当然不同的时间戳(这里有几微秒的差异)

知道为什么会这样吗?或者这是正常的吗?

谢谢!

编辑:回答这里的评论是我的应用代码

这是我的app.module:

import { HttpClientModule } from '@angular/common/http';
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { InputModule } from './input/input.module';
import { NavbarComponent } from './navbar/navbar.component';

@NgModule({
  declarations: [
    AppComponent,
    NavbarComponent,
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    InputModule,
    NgbModule.forRoot()
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

这是我的应用组件:

import { Component } from '@angular/core';

@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css']
})
export class AppComponent {
    title = 'app';

    showMeTheKey(event: KeyboardEvent) {
        console.log(event);
        event.stopImmediatePropagation();
    }
}

这是我的app html:

<input (keyup)="showMeTheKey($event)">

编辑2:这是一个带编辑器的在线演示,因此您可以访问代码(当然在现场演示中按F12查看日志):

现场演示:https://angular-znlk4p.stackblitz.io

编辑:https://stackblitz.com/edit/angular-znlk4p

编辑3:这是在演示中两次触发事件的打印屏幕 image

1 个答案:

答案 0 :(得分:0)

嘿,我发现了我的错误!

我正在通过虚拟机开发! 我正在使用的软件由于某种原因发送了两次密钥... 即使我只输入一个字母,也很奇怪......

我需要向制造商报告该错误!

我在非VM PC上测试了我自己的演示,它确实正常工作!

谢谢大家帮我找到这个!

干杯!