2016-07-15 132 views
0

我正在開發一個帶有angular2的小應用程序,並且我安裝了Rxjs 5. 在每個教程中都有導入Rxjs庫的不同方法。 在angular2 web中導入的代碼不起作用;我的意思是Websotrm不識別Observable或其任何函數(from,subscribe,...)。關於Rxjs的基本問題

  1. 我需要做些什麼來解決這個問題?
  2. 如果我從Rxjs導入所有東西,網站的負載是否會變慢? (我不會有那麼多的2-類)
  3. (Webstorm問題)我如何讓webstorm自動完成的與出按Alt +空格鍵的功能
+0

嘗試使用'angular-cli'腳手架搭配您的應用程序,並且它會使'rxjs'默認可用。你只需要將它導入你的組件。 –

+0

使用angular-cli時出現太多錯誤。所以我轉而發佈了基本的種子項目角色團隊。角度cli如何導入它? –

回答

1

最新的RXJS發行版提供了分解模塊來緩解巨大的文件大小,la Lodash。導入rxjs/Rx(正如另一個答案所暗示的)將會爲您提供整個庫並且不會被建議。

相反,導入方法和運營商分別:

  • 的核心類,從它的作用域模塊導入類:import { Observable } from 'rxjs/Observable'
  • 實例方法,使用實例範圍中的「添加」範圍:import 'rxjs/add/observable/fromEvent' (注意沒有解構目的是進口 - 該方法由導入自動添加)
  • 爲運營商,從add/operator範圍進口:import 'rxjs/add/operator/switchMap'

導入一個操作符使其可用於所有實例,因此建議您將所有使用的部分收集到單個文件中,並在需要時導入該文件,I.E.通過重新導出您使用的實例。

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. 此作品在我的名字項目:import {Observable, Subject} from "rxjs/Rx";

  2. 您只需要添加Rx.umd.min.jsrxjs/bundles。大約170KB。

  3. 嘗試升級到WebStorm 2016.2。我正在使用該版本,它工作正常(只要你有正確的導入)一般更好的支持Angular 2。請參閱更改說明。 我幾乎從不使用Ctrl + Space。提示:將Autopopup code completion值(設置,編輯器,代碼完成)設置爲非常低的延遲。

+0

感謝您的回覆。如何以及在哪裏添加Rx.umd.min.js?並且我有Webstrom 2016.2以及如何更改代碼cmpletion的延遲?它非常緩慢。 –

+0

注意從rxjs/Rx導入,因爲它會導入所有可觀察類型及其操作符,這些操作符將彙總在已編譯的應用程序空間中。 observable和subject類型的import語句是rxjs/[type] operators import語句基於靜態和實例導入 – LookForAngular