2017-02-09 20 views
0

2つの子コンポーネント間で情報を共有するためにAngular 2 Serviceを使用していますが、両方のコンポーネントがサービスと通信していますが、サービスへの変数に値を設定できません。ここではサービスのコードです:角度2のサービス変数

import { Injectable } from '@angular/core'; 
import { Http, Headers, Response } from "@angular/http"; 
import { Observable } from "rxjs"; 
import { Subject } from 'rxjs/Subject'; 
import {BehaviorSubject} from 'rxjs/Rx'; 
import 'rxjs/Rx'; 

@Injectable() 
export class ServiceNotifications { 

    newPacient: boolean; 

    nuevoPacient$: Subject<boolean> = new BehaviorSubject<boolean>(this.newPacient); 

    constructor() { 
     this.newPacient$.asObservable(); 
    } 

    notiNewPacient(status:boolean){ 
     console.log(status); 
     this.newPacient=status; 
     this.newPaciet$.next(this.newPacient); 
    } 
} 

私の問題は、私は、関数notiNewPacientと変数newPacientを更新することができないということです()。

+0

'newPaciet $'はどこにも定義されていませんが、誤字かもしれません。変数を更新できないということはどういう意味ですか?あなたのコンストラクタも何もしません。 – rob

+0

pacientが作成されるたびに、 "newPacient"を "true"の値で更新します。私はnotiNewPacient()でそれをやろうとしていますが、私はそれを得ることができません。サービスはうまくいきます。コンポーネントはObservableに接続されます。 – Osmon

答えて

0

観察なしで試してみてください。あなたのサービスで

:あなたのコンポーネントで

constructor() { 
    this.newPacient$ = true; 
} 

:あなたはComponentからnewPacientにアクセスしたい場合

constructor(service: serviceNotifications) { 
} 

get newPacient(): boolean { 
    return service.newPacient; 
} 

その後、あなたはthis.newPacientを行うことができます。そして、その見解から、ちょうどnewPacient