как перенести данные из одного компонента в другой с помощью сервиса в angular - PullRequest
0 голосов
/ 17 марта 2020

Я хочу отправить массив идентификаторов сотрудников другому компоненту, используя сервис. У меня есть 2 компонента - компонент1 и компонент2. Из компонента 1 я выбираю сотрудников с помощью флажков. Вот мой файл component.ts, из которого я отправляю массив идентификатора сотрудника в сервис.

файл component1.ts

      checkbox_selected = []
      ischecked: boolean;
     constructor(private attendanceService: EmployeeService, private router: Router,
     private fb: FormBuilder) {  }

     onChange(checkbox: any, isChecked: boolean) {
     console.log("checkbox")
     this.checkbox_selected.push(checkbox)
     this.id = checkbox
     this.ischecked = isChecked
     console.log(this.checkbox_selected)
     }
    show(){
    if(this.ischecked == true){
   this.router.navigate(["./component2"])
   this.attendanceService.my_employee_id(this.checkbox_selected);

    }

service.ts file

     export class EmployeeService {
      my_employee_id(id) {
      console.log(id)
     return this.emp_id;
     }
     }

В моем сервисном файле я получаю массив идентификатора сотрудника. Как я могу получить этот массив идентификатора сотрудника в другом компоненте ??

1 Ответ

0 голосов
/ 17 марта 2020

Пожалуйста, прочитайте документацию angular или проведите исследование, прежде чем спрашивать. Пожалуйста, прочитайте о Angular взаимодействии компонентов с использованием сервиса

На высоком уровне, что вы хотите ... [см. Ниже]

Сервис

import { Injectable } from '@angular/core';
import { Subject }    from 'rxjs';

@Injectable({
    providedIn: 'root'
})
export class EmployeeService {

  // Observable string sources
  private selectedEmpSub = new Subject<string[]>();

  // Observable string streams
  public myEmpSubj$ = this.selectedEmpSub.asObservable();

  // Service methods
  myEmployeeId(empIds: string[]) {
    this.selectedEmpSub.next(empIds);
    this.selectedEmpSub.complete();
  }

}

Компонент-1

this.attendanceService.myEmployeeId(this.checkbox_selected);

Компонент-2

this.attendanceService.myEmpSubj$.subscribe(empId => {
    this.empId = empId;
    console.log(this.empId);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...