обновление значения массива службы из родительского компонента и при изменении этого массива требуется обновить значение и представление дочерних компонентов. оба компонента видны одновременно. OverviewComponent - это родительский компонент, устанавливающий искомое значение отсюда в CommonModuleService, а затем вызывающий дочерний компонент хочет использовать этот искомый массив в SearchComponent (childComponent)
export class OverviewComponent implements OnInit { //ParentComponent
filteredProjects: any = [];
Projects: any = [];
constructor(private router: Router, private commonModuleService: CommonModuleService,
private projectService: ProjectService) {
};
ngOnInit() {
this.filteredProjects = this.commonModuleService.filteredProjects;
}
searchOperation() {
this.projectService.find(false).subscribe((response: ProjectModel[]) => {
if (response) {
this.projects = response;
//HERE SEARCH code then matching records get pushing into newProjects
this.commonModuleService.filteredProjects = this.newProjects;
this.router.navigate(['overview/search']);
}
});
}
}
export class CommonModuleService {
public filteredProjects: ProjectModel[];
constructor() {
}
public setFilteredProjects(filteredProjects) {
this.filteredProjects = filteredProjects;
}
public getFilteredProjects() {
return this.filteredProjects;
}
}
export class SearchComponent implements OnInit {
public filteredProjects: ProjectModel[];
constructor(private internalService: InternalService,
private projectService: ProjectService,
private route: ActivatedRoute,
private commonModuleService: CommonModuleService) {
this.filteredProjects = commonModuleService.filteredProjects;
}
ngOnInit() {
this.filteredProjects = this.commonModuleService.filteredProjects;
}
}
//search.component.html on change value this view need to be updated
<li class = 'project-search-list-item' * ngFor = 'let project of filteredProjects' >
{{project.name}}
</li>;