在子组件中发出函数后,从父函数获取返回值

问题描述

我有儿童部分:

fixedheader.html

<button type="button" [hidden]="hideComponent()">
    Close
</button>

我想根据父组件中函数的返回值将其隐藏。

fixedheader.ts

@Output() ComponentHidden: EventEmitter<any> = new EventEmitter();

hideComponent() {
    this.ComponentHidden.emit();
}

parent.html

<app-fixedheader [currentPage]="'SaleEdit'" [menuTitle]="viewTitle" [validForSave]="validForSave" (ComponentHidden)="ComponentHidden('salesEditComponentRef2')">
</app-fixedheader>

parent.ts

ComponentHidden(id: string): boolean {
    let component = this.componentsReferences.find(i => i.viewId == id);
    return (component === undefined ? true : false);
}

因此,在这里我需要如何将父级的返回值转换为子级,并且应该基于该值将其隐藏。

在这里错过了什么吗?

解决方法

如果您希望子组件被父组件隐藏,则父组件必须为此设置一个标志。 像这样:

fixedheader.html

<button type="button" [hidden]="isHide">
    Close
</button>

fixedheader.ts

@Input() isHide : boolean;

parent.html

<app-fixedheader [currentPage]="'SaleEdit'" [menuTitle]="viewTitle" [validForSave]="validForSave" [isHide]="ComponentHidden('salesEditComponentRef2')">
</app-fixedheader>

parent.ts

ComponentHidden(id: string): boolean {
    let component = this.componentsReferences.find(i => i.viewId == id);
    return (component === undefined ? true : false);
}