[英]Update input value in child even when it stays unchanged in parent angular 2+
我正在將值傳遞給子組件,例如..
<app-child-component[prop1]='prop1'></app-child-component>
然后像這樣把它抓住在孩子身上..
@Input() prop1:boolean;
這是一個布爾值,當按下按鈕時,其父級將從false更改為true。 在子級中,單擊另一個按鈕后,它會變回false。
在這一點上,如果我再次按下父按鈕,則什么也不會發生。 prop1的值在父級中仍然為true,因此未檢測到任何更改,也沒有任何內容發送給子級。 我了解這是預期的行為。
但是,有沒有辦法仍然將prop1的值再次推給孩子呢?
編輯:在這種情況下,我可能需要雙向數據綁定,但是由於我實際上沒有在父級中使用prop1的值,因此只要能夠在子級中再次更新它就足夠了。
您將必須從chld向父級發出值,所以是2方式綁定
在孩子
@Output() booleanEmitter= new EventEmitter();
onButtonClick(){
this.booleanEmitter.emit(this.prop1);
}
在父母中
<app-child-component (booleanEmitter)="getProp($event)" [prop1]='prop1'></app-child-component>
getProp($event){
this.prop = $event as boolean
}
好的,找到了一種沒有2路數據綁定的方法。
在父母..
<button type="button" (click)="prop1=!prop1">...</button>
<app-child-component [setProp]='prop1'></app-child-component>
而在孩子..
prop1:boolean;
@Input()
set setProp(p: boolean) {
this.prop1 = true;
}
因此,每次我單擊父級中的按鈕時,值都會更改並每次都發送給子級。 並且由於在父級中單擊按鈕始終意味着該值在子級中必須為true,這就是我在set函數中所做的。
編輯:用例是一個模態對話框,模態位於子組件中。 父級具有打開模態的按鈕,模態具有關閉按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.