私の角型アプリケーションでは、観測可能な配列を作成するためにrxjsを使用する際に問題が発生しています。Observableとstaticメソッドのコンストラクタ(of、from ...)が利用できません
出典:
import { Injectable } from "@angular/core";
import { Observable } from "rxjs/Rx";
import { User } from "../model/user";
@Injectable()
export class UserService {
public GetList(): Observable<User[]> {
return Observable.of(this.GetDummyData());
}
private GetDummyData(): Array<User> {
var users: Array<User> = new Array<User>();
users.push(new User(1, "user one", 1, 1000001, true));
users.push(new User(2, "user two", 2, 1000002, false));
users.push(new User(3, "user three", 3, 1000003, true));
return users;
}
}
これは、次のエラー生成:だから
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'of' of undefined
を、明らかに、静的メソッドは使用できません。私はここから二つのことを試してみました次に一致するようにimport文を変更し
- 使用コンストラクタをと(
error Uncaught (in promise): TypeError: Rx_1.Observable is not a constructor
、動作していない)、観察のインスタンスを作成します(動作していない、エラーは変わりません)
import { Observable } from "rxjs/Observable";
import "rxjs/Observable/of";
私はこの時間を浪費を取り除くために何ができるかを任意のアイデア?
使用済みのlibのバージョン:
"@angular/common": "4.0.1",
"@angular/compiler": "4.0.1",
"@angular/core": "4.0.1",
"@angular/forms": "4.0.1",
"@angular/http": "4.0.1",
"@angular/platform-browser": "4.0.1",
"@angular/platform-browser-dynamic": "4.0.1",
"@angular/animations": "4.0.1",
"@angular/router": "4.0.1",
"core-js": "2.4.1",
"reflect-metadata": "0.1.10",
"rxjs": "5.4.1",
"systemjs": "0.20.11",
"zone.js": "0.8.5",
EDIT たぶんここにいくつかの優れた問題のために落ちます。私はドキュメンテーション(Pankaj Pankarがここのコメントで寛大に提供したリンク)をチェックし、私のコンパイルの対象であるES5の明示的な言及は見ませんでした。だから、ここに私のセットアップのいくつかのより多くのだ、これは問題ではないことを確認してください:以下の(またはドキュメントでは、それがある)が挙げバージョンの
{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"lib": ["es5", "es2015", "dom" ]
}
}
なしが私のために動作しませ
tsconfig.jsonを、私のモジュールには互換性がなければならないと思います。
はいえ、ここで私が働いていることが判明唯一の方法です - (前に使用される)が、満足のいかない(あまり負荷)
import { Observable } from "rxjs/Rx";
import Rx from 'rxjs/Rx';
import 'rxjs/add/observable/of';
public GetList(): Observable<User[]> {
return Rx.Observable.of(this.GetDummyData());
}
はRx.Observableが定義されていることを意味私の理解することではなく、観察可能ではありません。
はない、 '輸入「rxjs// /観測of'' [ドキュメントリンク](https://github.com/ReactiveX/を追加する必要がありますrxjs#のインストールと使用)? –