Javascript 在同级组件之间共享数据,同时两个组件都使用*ngIf
所以我有一个父组件,它承载两个同级组件。 像这样的Javascript 在同级组件之间共享数据,同时两个组件都使用*ngIf,javascript,angular,angular6,Javascript,Angular,Angular6,所以我有一个父组件,它承载两个同级组件。 像这样的 <div *ngif="somecode()"> <sibling1> </sibling1> </div> <div *ngif="somecode()"> <sibling1 [dataParams]=sibling1object.somedata> </sibling1> </div> 因此,我得到的错误是sibling1ob
<div *ngif="somecode()">
<sibling1>
</sibling1>
</div>
<div *ngif="somecode()">
<sibling1 [dataParams]=sibling1object.somedata>
</sibling1>
</div>
因此,我得到的错误是sibling1object.somedata未定义,但当我从第一个div中删除ngIf()时,错误消失了。
*ngIf解析为true还是false并不重要。因此,即使在成功加载sibling1时,我也会出现错误。请在parent.component.ts中添加以下代码,而不要使用
[hidden]=“!somecode()”
public siblingOneLoaded: boolean = false;
ngOnDestroy(): void {
if (sibling1object.somedata) {
this.siblingOneLoaded = true;
}
}
将以下代码添加到html文件
<div *ngIf="siblingOneLoaded">
<sibling1 [dataParams]=sibling1object.somedata>
</sibling1>
</div>
尝试
*ngIf
而不是*ngIf