2016-07-15 10 views
0

angular2の小さなアプリを開発していて、Rxjs 5をインストールしました。 すべてのチュートリアルで、Rxjsライブラリをインポートする方法があります。 angular2 webにインポートするコードが機能していません。私は、WebsotrmがObservableやその機能を認識しないことを意味します(from、subscribe、...)。Rxjsについての基本的な質問

  1. これを修正するには何が必要ですか?
  2. Rxjsからすべてをインポートした場合、ウェブサイトの負荷は低下しますか?私はwebstormが出押しALT +スペース
+0

あなたのアプリを 'angular-cli'でスキャフォールすると、' rxjs'がデフォルトで利用可能になります。それをコンポーネントにインポートするだけです。 –

+0

angle-cliを使用するとエラーが多すぎます。私は基本的な種子プロジェクトの角チームを公開しました。角張ったクリスはそれをどのようにインポートしますか? –

答えて

1

最新のRXJSディストリビューションでは、Lodashの巨大なファイルサイズを緩和するためのモジュールが提供されています。 rxjs/Rxをインポートすると(別の回答が示唆しているように)、ライブラリ全体が表示されます。

その代わりに、個々にインポート方法およびオペレータコアクラスの

  • は、そのスコープモジュールからクラスをインポートする:インスタンスメソッドのためimport { Observable } from 'rxjs/Observable'
  • は、範囲を「追加」のインスタンスのスコープを使用する:import 'rxjs/add/observable/fromEvent' (注輸入への破壊さオブジェクトが存在しない - この方法は、インポートによって自動的に追加される)オペレータの
  • add/operator範囲からインポート:import 'rxjs/add/operator/switchMap'

オペレータを一度インポートすると、すべてのインスタンスで使用できるようになります。したがって、使用するすべての部品を1つのファイルに集め、必要に応じてそのファイルをインポートすることをお勧めします。使用しているインスタンスを再エクスポートします。

import { Observable } from 'rxjs/Observable'; 
import { BehaviorSubject } from 'rxjs/BehaviorSubject'; 
import 'rxjs/add/observable/fromEvent'; 
import 'rxjs/add/operator/flatMap'; 
import 'rxjs/add/operator/switchMap'; 

export { Observable, BehaviorSubject }; 
0
  1. を持つ関数の名前を自動補完するために作るためにこれは私の中でどのように動作する

  2. (Webstormの質問を)(私はもっとして2 - クラスを持っていません)プロジェクト:import {Observable, Subject} from "rxjs/Rx";

  3. Rx.umd.min.jsを追加する必要があるのは、rxjs/bundlesです。それは約170KBです。

  4. WebStorm 2016.2にアップグレードしてください。私はそのバージョンを使用しており、正常に動作します(正しいインポートがあれば提供します)。一般的にAngular 2のサポートが良好です。変更メモを参照してください。 私は事実上Ctrl + Spaceを使用しません。ヒント:Autopopup code completionの値(設定、エディタ、コード補完)を非常に遅く設定してください。

+0

お返事ありがとうございます。どのようにRx.umd.min.jsを追加すればいいですか?私はWebstrom 2016.2を持っています。そして、コードの長さの遅延をどうやって変更できますか?それは非常に遅いです。 –

+0

rxjs/Rxからのインポートに注意してください。観測可能なすべての型とその演算子がインポートされるため、コンパイルされたアプリケーション空間で集計されます。 observableおよびsubjectタイプのimportステートメントはrxjs/[type]です。operators importステートメントは静的およびインスタンスのインポートに基づいています – LookForAngular