Angular: объявление глобальной константы в обслуживании - PullRequest
0 голосов
/ 17 марта 2020

Я хотел бы вызвать службу, которая вызывает REST API и использует возвращенные данные, чтобы установить глобальную постоянную переменную, к которой затем можно получить доступ в компонентах по всему приложению. Я не уверен, что лучше всего это сделать.

Ответы [ 2 ]

1 голос
/ 17 марта 2020

Просто сделайте ваш сервис root -уровневым и добавьте его в другие сервисы и компоненты, такие как ..

@Injectable({providedIn: 'root'})
export class MyService {
   data;
   constructor(private http: HttpClient) {
     this.http.get('some-url').subscribe(data => this.data = data);  
   }
}

Теперь любой компонент может получать данные из сервиса root -уровня.

@Component({
  selector: 'my-component',
  template: '<div>Hello</div>',
})
export class MyComponent {
   myData;
   constructor(private myService: MyService  {
     this.data = this.myService.data;
   }
}

Приведенный выше код приведен только для примера.

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

Сервис по умолчанию является одноэлементным (один экземпляр для всего приложения), поэтому все, что вы храните в сервисе, будет доступно всем компонентам вашего приложения.

...