вы можете использовать EventEmitter.
Emitter событий в Angular
Создать Emitter событий в качестве службы:
import { EventEmitter, Injectable } from '@angular/core';
@Injectable()
export class EventEmitterService {
raiseEvent = new EventEmitter();
constructor() { }
onSaveAfter() {
this.raiseEvent.emit();
}
}
Компонент списка:
import { EventEmitterService } from "../../event-emitter/event-emitter.service";
@Component({
selector: 'app-list',
templateUrl: './list.component.html',
styleUrls: ['./list.component.css'],
})
export class ListComponent implements OnInit, AfterViewInit, OnDestroy {
constructor(private eventEmitter: EventEmitterService) {
this.onSave();
}
onSave() {
this.subscribeEvent = this.eventEmitter.raiseEvent.subscribe(data => {
//your data fetching function to get data.
this.fillGrid();
});
}
}
Добавить Редактировать компонент:
import { EventEmitterService } from "../../event-emitter/event-emitter.service";
@Component({
selector: 'app-add-edit',
templateUrl: './add-edit.component.html',
styleUrls: ['./add-edit.component.css'],
})
export class AddEditComponent implements OnInit, AfterViewInit, OnDestroy {
constructor(private eventEmitter: EventEmitterService) {
}
//call this function after you updated data to refresh list.
refreshList(){
this.eventEmitter.onSaveAfter();
}
}