1
美好的一天!Angular2 Observable不是第一次開火
從RC5更新到最新版本後,Angular2存在一個小問題。 我正在使用服務在組件之間進行通信。該服務公開Observable以允許訂閱,並在app.module
中聲明。在控制檯中,它似乎包含第一次點擊以及可用訂閱者的數據。
現在,當我點擊調用取方法組件上的按鈕,沒有任何反應。但是,如果再次單擊它,結果將顯示成功。我在網上搜索,但無法找到答案。
隨着angular2 rc5相同的代碼正常工作,直到更新。從服務
零件:
items: Observable<Array<Object>>;
private _data: BehaviorSubject<Array<Object>>;
constructor(private http: Http) {
this._data = new BehaviorSubject(null);
this.items = this._data.asObservable();
}
fetch(text: String) {
this.text = text;
let headers = new Headers();
headers.append("Content-Type", "application/json");
let options = new RequestOptions({ headers: headers });
this.http.post(this._url, "...{}...", options)
.map((res: Response) => res.json())
.subscribe(data => {
this._data.next(Object.assign([], data).items);
}, error => this.handleError(error));
}
分量代碼,它應該被更新。 (順便說一句組件是<router-outlet>
內)
component:
private data: Array<Object>;
ngOnInit() {
this.fetchService.items.subscribe(result => {
this.data = result;
});
}
任何人誰可以闡明什麼是錯的一些輕?
控制檯中的任何錯誤? –
你爲什麼使用'BehaviorSubject'? – AngularChef
不,我沒有得到任何錯誤,並且在控制檯和網絡選項卡中,我可以看到請求和返回的數據。是的,我確實使用BehaviorSubject。 –