繁体   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