2017-08-14 24 views
0

いくつかのbehaviorsオブジェクトに問題があります。BehaviorSubjectがコンストラクタで未定義

Iがサービスを有する:

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

@Injectable() 
export class BoutonImprimerGriseService { 

    boutonImprimerGrise = new BehaviorSubject<boolean>(true); 
    boutonImprimerGriseChanged$ = this.boutonImprimerGrise.asObservable(); 

    boutonMettreAZeroGrise = new BehaviorSubject<boolean>(true); 
    boutonMettreAZeroGriseChanged$ = this.boutonMettreAZeroGrise.asObservable(); 

} 

を、私はコンポーネントで使用:

export class GestionCompteursComponent { 

boutonImprimerGrise: boolean; 
boutonMettreAZeroGrise: boolean; 

private _boutonImprimerGriseSubscription: Subscription; 
private _boutonMettreAZeroSubscription: Subscription; 

constructor(private _boutonImprimerGriseService: BoutonImprimerGriseService) 
{ 
    this._boutonImprimerGriseSubscription = this._boutonImprimerGriseService.boutonImprimerGriseChanged$.subscribe(
     value => { 
      console.log(value); 
      this.boutonImprimerGrise = value; 
     } 
    ); 
    this._boutonMettreAZeroSubscription = this._boutonImprimerGriseService.boutonMettreAZeroGriseChanged$.subscribe(
     value => { 
      console.log(value); 
      this.boutonMettreAZeroGrise = value; 
     } 
    ); 
} 
} 

Iは、コンストラクタに観測値を記録する際の問題は、最初のものであり、 boutonImprimerGriseは、私のサービスでtrueに設定されていても、常に定義されていません。理由はわかりません...

y 、私は通常、あなたが何らかの理由ではないことがそれらを必要としない限り、プライベートとしてサービス内の変数を定義したいと

:OUあなたは歓迎している:)

おかげ

答えて

0

カップルの事を任意のアイデアを持っていますもう一つはtypescriptを使用してboutonImprimerGrise変数をBehaviorSubjectとして定義することです。私は問題を発見

private boutonImprimerGrise: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true); 
boutonImprimerGriseChanged$ = this.boutonImprimerGrise.asObservable(); 
+0

おかげで値を変更することだけです。 –

0

を(両方の宣言のために繰り返して)、それは...、同時に2つの異なるサービスにアドバイスを

関連する問題