おはよう!角度2最初に発射しないことがわかります
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));
}
それが更新されるべきコンポーネント・コード。間違っているものにいくつかの光を当てることができ
component:
private data: Array<Object>;
ngOnInit() {
this.fetchService.items.subscribe(result => {
this.data = result;
});
}
誰でも(ところでコンポーネントは<router-outlet>
の内部にありますか)?
コンソールにエラーがありますか? –
なぜあなたは 'BehaviorSubject'を使用していますか? – AngularChef
いいえ、私はエラーが発生しないし、コンソールとネットワークのタブで私は要求と返されたデータを見ることができます。はい、私はBehaviorSubjectを使用します。 –