Я создаю приложение angular2, и у меня есть служба, которую я хочу написать в одном компоненте, а затем читать/обновлять ее в другом компоненты (маршруты).Свойство '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
, только те компоненты, которые подписывались смогут увидеть любые значения. Я попытался изменить его на BehaviorSubject
, основанный на документах rxjs. Вот как это выглядит:
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.
это, вероятно, называется 'next' вместо' onNext', если вы используете rxjs 5 – user3743222