Глобальная переменная в angular2, значение которой может быть изменено

Я ввел одну службу при загрузке для использования глобальных переменных:

 bootstrap(AppComponent, [ GloablService ]);

глобальный.услуга.ts

import {Http} from 'angular2/http';
import {Observable} from 'rxjs/Observable';
import {Observer} from 'rxjs/Observer';
import 'rxjs/add/operator/share';

export class GlobalService {
  baseUrl:string;
  constructor() {
    this.baseUrl='http://localhost:8080'; 
  }
  setBaseUrl(url:string) {
    this.baseUrl=url;  
  }
  getBaseUrl() {
    return this.baseUrl;  
  }
}

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

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

Я пытался использовать наблюдаемые тоже, но без пользы.

есть предложения?

1 ответ

  1. Не добавляйте providers: [ GloablService ]ни один компонент, иначе компоненты получат другой экземпляр. Только предоставьте его один разbootstrap(), как вы сделали, или только в корневом компоненте AppComponent.