[英]submit, keyup.enter not working on angular 10
我正在我的代碼中從基本學習角度我想在enter
時從文本框中發送文本以在我嘗試使用keyup
keydown
時它工作正常但是當嘗試使用submit
keyup.enter
時整個組件消失
診斷.component.html:
<input type="text" #nameText (keyup.enter)="addItem(nameText.value)">
<ul>
<li *ngFor="let name of names">{{name}}</li>
</ul>
診斷.component.ts:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-diagnos',
templateUrl: './diagnos.component.html',
styleUrls: ['./diagnos.component.css']
})
export class DiagnosComponent implements OnInit {
names = ['abc','xyz'];
constructor() { }
ngOnInit(): void {
}
addItem(val){
this.names.push(val);
}
}
當使用keyup.enter
或按enter
或submit
后提交時:
在輸入或提交整個組件后,即使那個ul
也消失了,並且如果該函數被調用但該函數沒有調用,則嘗試登錄控制台
我的項目鏈接: https ://github.com/ladbhupesh/angularapp
我試圖重現你的代碼,一切似乎都很好,尤其是keyup.enter
附上Stackblitz Demo供大家參考。
我可以知道缺少什么嗎?
更新
根據您提到的提供的 Github 鏈接,在查看正在運行的代碼時, @Output EventEmitter
似乎影響了您的(keyup.enter)
,我不太確定您的項目經歷了什么,因為我只掃描了您的代碼片段但您可以通過提供以下代碼來解決該問題:
應用組件
...
changePage(val) {
if (typeof val === 'string') this.pageName = val;
}
發生的事情是,來自DiagnosisComponent's keyup.enter
的事件在您的AppComponent's changePage
上進行了AppComponent's changePage
或通信,它接收一個對象而不是字符串,導致pageName
將其值重新初始化為給定的對象,因此,沒有組件正在呈現並離開您的頁面為空,因為給定對象沒有可用的pageName
。
您可以通過在AppComponent's changePage(val) {...} function
執行console.log(val)
來檢查它
這就是你用回車鍵觸發功能的方式,
<input type="text" (keyup.enter)="function()">
不是
(keyup.enter.p)
(keyup.enter) 在容器 div 中添加而不是在輸入中時為我工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.