簡體   English   中英

在兄弟組件之間共享數據,而他們都使用* ngIf

[英]share data between sibling components while both of them use *ngIf

所以我有一個父組件,它承載2個兄弟組件。 這樣的事情

<div *ngif="somecode()">
 <sibling1>
 </sibling1>
</div>

<div *ngif="somecode()">
 <sibling1 [dataParams]=sibling1object.somedata>
 </sibling1>
</div>

所以我得到sibling1object.somedata未定義的錯誤但是當我從第1個div中刪除ngIf()時,錯誤消失了。 * ngIf解析為true或false無關緊要。 所以即使sibling1成功加載,我也會收到錯誤。

使用[hidden]="!somecode()"而不是*ngIf="somecode()"

請在parent.component.ts中添加以下代碼

 public siblingOneLoaded: boolean = false;
 ngOnDestroy(): void {
        if (sibling1object.somedata) {
            this.siblingOneLoaded = true;
        }
    }

將以下代碼添加到html文件中

 <div *ngIf="siblingOneLoaded">
        <sibling1 [dataParams]=sibling1object.somedata>
        </sibling1>
    </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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