2016-06-13 42 views
2

私はangle2アプリを作成していますが、私はあるコンポーネントで書き込み可能なサービスを持っています。コンポーネント(ルート)。プロパティ 'onNext'はタイプ 'BehaviorSubject <Filer>'には存在しません

は、ここに私のサービスは現在、次のようになります。

import { Injectable } from '@angular/core'; 
import { Filer } from './filer.model'; 
import { Observable } from 'rxjs/Observable'; 
import { Subject } from 'rxjs/Subject'; 

@Injectable() 
export class FilerService { 
    public _filer: Subject<Filer>; 

    constructor() { 
    this._filer = new Subject(); 
    } 

    setSelected(ret: Filer) { 
    let temp = ret; 
    this._filer.next(temp); 
    } 

    get selected(): Observable<Filer> { 
    return this._filer.asObservable(); 
    } 

} 

私はSubjectを使用していることから、購読しているコンポーネントのみが任意の値を見ることができます。私はrxjsドキュメントに基づいてBehaviorSubjectに変更しようとしました。ここではそれは次のようになります。

import { Injectable } from '@angular/core'; 
import { Filer } from './filer.model'; 
import { Observable } from 'rxjs/Observable'; 
import { Observer } from 'rxjs/Observer'; 
import { BehaviorSubject } from 'rxjs/BehaviorSubject'; 

@Injectable() 
export class FilerService { 
    public _filer: BehaviorSubject<Filer>; 

    constructor() { 
    this._filer = new BehaviorSubject({}); 
    } 

    setSelected(ret: Filer) { 
    let temp = ret; 
    this._filer.onNext(temp); 
    } 

    get selected(): Observable<Filer> { 
    return this._filer.asObservable(); 
    } 

} 

しかし、私はProperty 'onNext' does not exist on type 'BehaviorSubject<Filer>'.を取得するので、私はどこへ行く、ここからはよく分かりません。何か案は?

私はrxjs 5.0.0-beta.6です。

+7

rxjsを使用すると、おそらく 'onNext'ではなく' next'と呼ばれます。 – user3743222

答えて

10

最新のangular2を使用している場合、rxjs 5が使用されます。その場合はnext()で、onNext()ではなく使用する必要があります。

migration guideをご覧ください。

関連する問題