2016-04-04 5 views
1

こんにちは私は単純なコンポーネントとサービスを持っています。ユーザーがサブミットボタンをクリックすると、非同期サブジェクトがすべてのサブスクライバに値を送信するサービスを呼び出しています。サブジェクトを使用して正常に動作しましたが、ここで作ったhttp://plnkr.co/edit/tHjPVZ5NurJRWdCM9lbt?p=previewをデモを非同期Subject.Iを使用しています...これは私のサービス...angular2の非同期サブジェクトの使い方は?

export class ErrorService{ 
    latestError:AsyncSubject<>=new AsyncSubject(); 

    error(){ 
    this.latestError.next('form submitted'); 
    } 
} 

であり、これは私がasyncsubject

export class AppComponent { 
    result:any; 
    constructor(private service:ErrorService){ 
    this.service.latestError.subscribe(err=> this.result=err); 
    } 

    onSubmit() { 
    this.service.error(); 
    } 
} 

をサブスクライブしています私のコンポーネントクラスである。しかし、これはありますエラーを投げる...私はどこを間違っているのかわかりません...誰かがこのエラーを修正して表示するのを助けてくださいhttp://plnkr.co/edit/SAl4YVXKRWpS7OeTYMrd?p=preview

import {AsyncSubject} from 'rxjs/subject/AsyncSubject'; 

@Injectable() 
export class ErrorService{ 
    latestError:AsyncSubject<>=new AsyncSubject(); 
    error(){ 
    this.latestError.next('form submitted'); 
    } 
} 

このplunkrを参照してください:私は、どのように非同期の件名を使用して、その加入者

あなたはクラスをこのように含める必要が

答えて

3

に値を放出します。

+1

これは 'rxjs/subject/AsyncSubject'の 'import {AsyncSubject} 'です;あらかじめ定義されたクラス/インポートですか? –

+0

しかし、私のサービスクラスで.next()が呼び出されると、値を送出します。私はコンストラクタで非同期サブジェクトをサブスクライブしました...しかし、非同期サブジェクトによって送出された値を取得していません –

+1

@PardeepJain You rxjs/Rxモジュールからインポートすることもできます: 'import {AsyncSubject} from 'rxjs/Rx';'。 –

関連する問題