2016-10-30 15 views
7

"マップは関数ではありません"に関する多くの質問がありましたが、ほぼ は誰もrxjsライブラリをインポートしませんでした。マップは関数(Rxjs)ではありませんが、インポート

私の場合、私はインポートを行いますが、エラーはまだあります。

私はイオン2で動作し、これが私のpackage.jsonの依存関係がどのように見えるかされています

"dependencies": { 
"@angular/common": "2.0.0", 
"@angular/compiler": "2.0.0", 
"@angular/compiler-cli": "0.6.2", 
"@angular/core": "2.0.0", 
"@angular/forms": "2.0.0", 
"@angular/http": "2.0.0", 
"@angular/platform-browser": "2.0.0", 
"@angular/platform-browser-dynamic": "2.0.0", 
"@angular/platform-server": "2.0.0", 
"@ionic/storage": "1.0.3", 
"ionic-angular": "2.0.0-rc.1", 
"ionic-native": "2.2.3", 
"ionicons": "3.0.0", 
"rxjs": "5.0.0-beta.12" 
} 

だから、私は私のサービスを作成する方法である:

import { Injectable } from '@angular/core'; 
import { Http, Headers, RequestOptions, Response } from '@angular/http'; 
import { Observable } from 'rxjs'; 
import 'rxjs/add/operator/map'; 

@Injectable() 
export class LoginService { 
    constructor(private http: Http) { 

    } 

    private dataUrl = '/node'; 

    getData() : any { 
     this.http.get(this.dataUrl) 
      .map(response => response.json()) 
      .subscribe(result => console.log(result)); 
    } 
} 

私も再インストールしてみましたrxjsモジュールが、まだ成功していません。 イオン2や現在の角度バージョンと互換性がないのでしょうか?

あなたはどう思いますか?

乾杯、

アンドレイ

+0

エラーメッセージ全体を表示できますか? – martin

+0

これも 'import 'rxjs/Rx'' – micronyks

答えて

2

ファイルを作成rxjs-operators.ts

// Statics 
import 'rxjs/add/observable/throw'; 
// Operators 
import 'rxjs/add/operator/catch'; 
import 'rxjs/add/operator/debounceTime'; 
import 'rxjs/add/operator/distinctUntilChanged'; 
import 'rxjs/add/operator/map'; 
import 'rxjs/add/operator/switchMap'; 
import 'rxjs/add/operator/toPromise'; 

し、必要に応じてときにそれを呼び出します。

import './rxjs-operators'; 
1

は、私は同じ問題を抱えていた

import {Observable} from 'rxjs/Observable'; 

getData() : Observable<any> { 
     this.http.get(this.dataUrl) 
      .map(response => response.json()) 
      .subscribe(result => console.log(result)); 
    } 
7

を試してみてください。

私はsystem.jsでjspmを使用しています。私にとって、jspm update angular2-httpを使用してシステムをアップグレードしたとき、[email protected]が必要ですが、[email protected]が必要です[email protected]これは "rxjs"のマッピング先です。私はそれが最新のバージョンだったので、私は思いますか? jspmによって作成されたファイルconfig.jsを調べることで、このすべてを発見しました。

だから、どうやら私は文を使用し...

import 'rxjs/add/operator/map'; 

...それがHTTPを使用していたバージョンないバージョン5.0.0-beta.12をrxjsためにマップを追加しました。私はその行を...に変更しなければならなかった。

import 'npm:[email protected]/add/operator/map'; 

...そしてそれは働いた。

+0

ありがとうございました!私はちょうどあなたのインポートコードのrxjsバージョン番号を変更し、それは私のために働いた。 –

0

'は角度/コア@' から

インポート{注射を}試みます。 '@ angular/http'の{Http、Response、Headers、URLSearchParams、RequestOptions}をインポートします。 'rxjs/Observable'から{Observable}をインポートします。 'rxjs/Rx'をインポートします。

-1

インポートインポート 'rxjs/Rx';各インポートの5.5.2バージョンにいくつかの問題があります。私は 'rxjs/Observable'から{Observable}をインポートするために 'rxjs/Rx'からimport {Observable}に変更します。

+1

2つのこと:あなたの文は不完全です。あなたがソースを使ってあなたのクレームを詳述するか、またはバックアップすることができれば、それは素晴らしいことでしょう。 – MrPaulch

+0

@MrPaulch: 'Observable'のようなObservableを 'rxjs/Rx'からインポートすると問題が発生し、 'Observable}を' rxjs/Observable 'からインポートする必要があります。 –

関連する問題