Angular 8 Refre sh компонент в массиве обновлен на службе - PullRequest
0 голосов
/ 06 марта 2020

обновление значения массива службы из родительского компонента и при изменении этого массива требуется обновить значение и представление дочерних компонентов. оба компонента видны одновременно. 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>;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...