2017-01-05 20 views
1

私は簡単な例をまとめましたが、動作するはずですが、そうではありません:( 私は、メートル間違っている。観測可能なサブジェクトから値をプッシュ/ネックスするとサブスクライブされたオブザーバブルが更新されない

@Component({ 
    templateUrl: 'sandbox.template.html' 
}) 
export class SandBoxPage implements OnInit { 

    dataSubject: Subject<string> = Subject.create(); 
    data$: Observable<string>; 

    constructor(private platform: Platform) { 
     this.data$ = this.dataSubject 
      .asObservable() 
      .startWith("First value in the observable"); 
    } 

    onClick() { 
     console.log("onClick()"); 
     this.dataSubject.next(Date.now + " value"); 
    } 

    ngOnInit() { 
     console.log("ngOnInit()"); 
     this.data$.subscribe((v) => { 
      console.log("new value", v); 
     }, (err) => { 
      console.log("Error", err); 
     }); 
    } 
} 

私はonClick()にフックアップボタンがありますが、私の購読ではconsole.logは発生しません。それが唯一の開始時にstartsWith値で一度発射する。

答えて

1

の場合createで件名を作成する場合は、observerととする必要がありますパラメータはドキュメントに従います。

Rx.Subject.create(オブザーバ、観測可能)

出典:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/subjects/subject.md#rxsubjectcreateobserver-observable

ソリューション:https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service

+0

: ただ、新しい

dataSubject: Subject<string> = new Subject<string>(); 

ソースでそれを作成しますワオ。ちょうど...うわー。どのような微妙な頭痛。ありがとう! – Matt

+0

@Matt私たちはすべてそこにいた:) – echonax

関連する問題