问题描述
我想从childCom2触发一个childCom1的函数。 childCom1 和 childCom2 是兄弟姐妹。为此,我使用了这个:How to call another components function in angular2(第一个答案)。
但是在我的父组件 HTML 中,childCom2 无法识别 childCom1(由我的 IDE 看到)。我在编译时遇到以下错误:Property 'childCom1' does not exist on type 'parentCom'
我得到以下代码
parentCom
<div class="row">
<div class="col-2">
<app-childCom2 (myEvent)="childCom1.function()">
</app-childCom2>
</div>
<div class="col-5">
<div class="card">
<div class="card-header">
Data Frame
</div>
<div class="card-body" *ngIf="this.jsonParameteRSService.isspecificationFileLoaded">
<app-childCom1 #childCom1></app-childCom1>
</div>
</div>
</div>
</div>
childCom2
@Component({
selector: 'app-childCom2',templateUrl: './childCom2.component.html',styleUrls: ['./childCom2.component.css']
})
export class childCom2 implements OnInit {
opened = true;
@Output() myEvent = new EventEmitter();
constructor() { }
ngOnInit(): void {
}
function($event) {
this.myEvent.emit($event);
}
}
解决方法
这是由 *ngIf 引起的。我删除了 *ngIf 字段并将其写入特定组件。