我需要將值(0)傳遞給父組件,因此我呼叫子組件如下:
<app-componentadduser [target]="target" *ngIf="opt==1" (newItemEvent)="changeOpt($event)"></app-componentadduser>
以及 changeOpt 的代碼:
changeOpt(newItem: number) {
console.log(newItem)
this.opt = newItem;
}
在孩子方面,
@Input() target: string;
@Output() newItemEvent = new EventEmitter<number>();
然后當一個按鈕被點擊,并且在一個程序發生之后:
this.newItemEvent.emit(0);
從父母那里,我什至嘗試 console.log newItem (值為 0)但 changeOpt 永遠不會執行。
我不知道我錯過了什么。我認為 *ngIf 與它有關,但事實并非如此。
謝謝。
更新:
Console.log 拋出此錯誤:
TypeError:ctx_r9.changeOpt 不是函式。(在 'ctx_r9.changeOpt($event)' 中,'ctx_r9.changeOpt' 未定義)
uj5u.com熱心網友回復:
由于您只是傳遞一個數字,請嘗試
(newItemEvent)="opt=$event"
uj5u.com熱心網友回復:
首先我不知道你在哪里呼叫 this.newItemEvent.emit(0);
因此,這種方法可能存在問題。例如,您應該在按鈕或某些操作上呼叫它。其他一切似乎都很好,但也許我是盲人:D
無論如何,我用你的輸出創建了 stackBlitz 示例,一切正常。看一看。
例子
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/447487.html
