簡體   English   中英

即使在父角度2+中保持不變,也更新子項中的輸入值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM