Я хочу добавить код в дочерний метод ngOnInit из родительского класса.Можно ли как-то сделать что-то похожее на это?
export class Child extends Parent {
constructor(){
super(this.ngOnInit);
}
ngOnInit(){
console.log('Child onInit');
}
}
И Parent:
export class Parent {
constructor(childOnInitMethod: any){}
ngOnInit(){
console.log('Parent added code to child onInit');
this.childOnInitMethod.apply(this, arguments)
}
}
Проблема в том, что на дочернем конструкторе у меня нет доступного "this".
ОБНОВЛЕНИЕ: Найдите здесь текущий код
Пока что это то, что я сделал.Дочерний класс расширяет родительские ngOnInit и ngOnDestroy.Чего я хочу добиться, так это избегать вызова родительского "super.subscribeEvents ();"вот так:
ngOnInit() {
window.onresize = () => console.log('resizing');
super.subscribeEvents();
}
Что я хочу сделать, так это добавить код в ngOnInit дочернего элемента родительского элемента.Это классы:
export class DatatablePage extends EventSubscriber {
@Output() onLoadRow: EventEmitter<any> = new EventEmitter();
public gridApi: GridApi;
constructor(
events: Events
) {
super(events, [
{ eventName: 'datatable:updateList', callbackFunction: () => this.onLoadRow.emit() },
{ eventName: 'datatable:resizeTable', callbackFunction: () => this.gridApi.sizeColumnsToFit() }
])
}
ngOnInit() {
window.onresize = () => console.log('resizing');
super.subscribeEvents();
}
}
И Parent:
export class EventSubscriber {
constructor(
private events: Events,
public eventSubscriptions: EventObject[]
) {
}
ngOnInit() {
this.subscribeEvents();
}
ngOnDestroy() {
this.unsubscribeEvents();
}
subscribeEvents() {
this.eventSubscriptions.forEach((eventSubscription: EventObject) => {
this.events.subscribe((eventSubscription.eventName), eventSubscription.callbackFunction)
});
}
unsubscribeEvents() {
this.eventSubscriptions.forEach((eventSubscription: EventObject) => {
this.events.unsubscribe((eventSubscription.eventName), eventSubscription.callbackFunction)
});
}
}