jsonをレンダリングするためのHTTPコールを持つ2つの兄弟コンポーネントがあります。 OnInitでは、コンポーネントBがサービスを呼び出すHTTP応答を取得し、画面を読み込みます。 コンポーネントAのクリックイベントは、コンポーネントBがデータを更新するようにする必要があります。AngularJSのBehaviourSubjectのHTTPレスポンスのキャッシングとネクション2/4
私はからObjectiveTCによって投稿答えを追った - これがうまく働いた>What is the correct way to share the result of an Angular 2 Http network call in RxJs 5?
_docdata: BehaviorSubject<DetailSection[]> = new BehaviorSubject<DetailSection[]>([]);
service.getData(){return this.http.get(this.url)
.map((res) =>{this._docdata = (res.json()); console.log("1st return"); return this._docdata; })
.catch((error:any) => Observable.throw(error|| 'Server error')); }
。
refresh(){
this.http.get("../../assets/reqd-detail.json")
.map(res => res.json())
.subscribe((data:Array<DetailSection>) => this._docdata.next(data));
}
getting error --> ERROR TypeError: _this._docdata.next is not a function at SafeSubscriber._next (detail.service.ts:156) at SafeSubscriber.webpackJsonp.../../../../rxjs/Subscriber.js.SafeSubscriber.__tryOrUnsub (Subscriber.js:238) at SafeSubscriber.webpackJsonp.../../../../rxjs/Subscriber.js.SafeSubscriber.next (Subscriber.js:185) at Subscriber.webpackJsonp.../../../../rxjs/Subscriber.js.Subscriber._next (Subscriber.js:125) at Subscriber.webpackJsonp.../../../../rxjs/Subscriber.js.Subscriber.next (
返信いただきありがとうございます。 しかし、refresh()メソッドで_docdata.next()のエラーが発生しています エラー=>エラーTypeError:_this._docdata.nextは関数ではありません – aabbcc
はい、getDataで_docDataを初期化したためにエラーが発生しましたBehaviourSubjectではないオブジェクトであなたは上記のコードを試しましたか? –
refresh()はうまくいきました。しかし、getData()はレスポンスをレンダリングしません。 リフレッシュ(){ 戻りthis.http.get( "../../資産/ REQD-detail.json")\t \t \t \t .MAP(RES => res.json()) \t \t (エラー:any)=> console.error( "fetch:ERROR")エラーメッセージを表示するには、次のように入力します。 "、err)、 \t \t()=> console.log(" fetch:always ")); } – aabbcc