私の頭をラップすることができないチェーン/ラップObservables。私はservicemethodを持っているのVisual Studioで活字体でRxJsで2015ラップオブザーブ可能なメソッド
をAngular2のRC1を使用しています 'saveProduct' ProductServiceクラスで:
public saveProduct(product: Product): Observable<string> {
let options = new RequestOptions({ headers: new Headers({ 'Content-Type': 'application/json' }) });
return this.http.post(this.config.apiUrl + '/product', JSON.stringify(product), options).map(this.extractData).catch(this.handleError);
}
私はangular2コンポーネントでそれを消費:
public save() {
this.productService.saveProduct(this.product).subscribe(
result => this.productSaveExecuted(result),
error => this.handleError(error)
);
}
コンポーネントがモーダルダイアログにラップされています。コンポーネントのsaveメソッドを呼び出した後にダイアログを閉じると、ダイアログが閉じられて保存アクションが完了します。ですから、私は、が成功した後に、を閉じたいモーダルdivウィジェットにコンポーネントがラップされているので、Observableを返すようにコンポーネントの保存関数を設定したいと考えています。これをどのように達成するのですか?このような
私はあなたの答えは私が目指しています正確に何であると思いますが、ご返信いただきありがとうございます。ただし、VS2015はエラーを返します。 プロパティ 'select'がタイプ 'Observable'に存在しません。 Angular2はrxjsのサブセットのみを使用しているようですか?ディレクトリnode_modules¥rx¥src¥core¥linq¥observable¥ でselect.jsが表示されます。これを私のAngular2クラスにどのようにインポートできますか? –
Mcanic
私はAngular2に非常に流暢ではありませんが、 'saveProduct'によって返された' Observable'が 'Rx.Observable'である場合、その上にselectが存在するはずです。出力タイプを 'Rx.Observable'に変更してみてください。うまくいかない場合は、ソリューションにRxjをさらに追加する必要があります(rx.all.jsとrx.all.d.tsにはすべてが含まれています)。 rxjsに関する一般的な情報についてはhttps://github.com/Reactive-Extensions/RxJSをご覧ください。 – Nypan
仕事に就きましたか? – Nypan