【发布时间】:2022-01-05 09:04:34
【问题描述】:
我有一个使用静态函数从另一个组件创建的组件(RecordPage):
static openRecordPage(drawerService: NzDrawerService, args: RecordPageArgs) {
const drawerRef = drawerService.create<RecordPageComponent>({
nzTitle: args.drawerTitle,
nzWrapClassName: 'drawer-size-4x drawer-body-no-padding',
nzContent: RecordPageComponent,
nzContentParams: {
moduleId: args.moduleId,
sourceObject: args.sourceModuleId,
moduleActionType: args.moduleActionType,
sourceObjectId: args.sourceRecordId,
inDrawer: args.inDrawer,
recordId: args.recordId,
recordModel: args.recordModel,
actionType: args.actionType,
inputValues: args.inputValues,
parentRecordModel: args.parentRecordModel,
customActionCode: args.customActionCode,
},
});
drawerRef.afterClose.subscribe(() => {
try {
args.parentComponent.recordPageDrawerClosed();
} catch (e) {
console.log(e);
}
});
drawerRef.afterOpen.subscribe(() => {
const recordPageComponent = drawerRef.getContentComponent();
recordPageComponent.backButtonClicked.subscribe(() => {
drawerRef.close();
});
recordPageComponent.objectSubmitted.subscribe(($event) => {
args.parentComponent.linkedObjectSubmitted($event, args);
if (args.actionType.toLowerCase() === 'add') {
drawerRef.close();
}
});
});
}
我的问题是:在销毁 RecordPage 组件后,静态函数中的订阅者仍然存在并导致问题。
【问题讨论】:
标签: angular destroy subscribe ng-zorro-antd