一旦我为生产构建了我的Angular应用程序:
ng build --prod
我的所有键盘事件都没有触发:
聊天window.component.html:
<input type="text" class="chat-input" placeholder="Write your message here..." (keydown.enter)="onEnter($event)" (keydown)="onKeydown($event)" (focus)="onFocus($event)" [(ngModel)]="draftMessage.text" />
<span class="input-group-btn">
<button type="button" class="btn-chat" (click)="onEnter($event)">Send</button>
</span>
上面的HTML代码段不包含在:
中<form></form>
聊天window.component.ts:
onEnter(event: any): void {
console.log('CHAT-WINDOW: keydown.enter: event',event);
this.sendMessage();
event.preventDefault();
}
onKeydown(event: any): void {
console.log('CHAT-WINDOW: keydown: event',event);
}
按下&#39;输入&#39;输入字段内的按钮,没有任何反应。没有控制台消息,并且未发送消息。我添加了&#39;(keydown)&#39;事件处理程序只是为了看看是否有任何&#39; keydown&#39;事件被解雇了。没什么。
此问题出现了,仅使用&#39;(keydown.enter)&#39;。我只添加了&#39;(keydown)&#39;查看是否有任何keydown事件会注册。我也试过删除&#39; event.preventDefault();&#39;仍然没有什么火。
但是,按钮上的click事件有效,因此鼠标事件似乎没问题。
在开发模式[localhost:4200]中,一切都按预期工作。换句话说,将显示相关的控制台消息并发送消息。
当我使用我的应用程序的编译版本时,有人能告诉我为什么我的键盘事件没有注册吗?
环境:
"@angular/cli": "1.5.0",
"@angular/compiler-cli": "5.0.0",
经过测试:
Firefox [latest version]
Chrome [latest version]
Edge [latest version]