2016-04-11 5 views
0

現在、Angular2のサービスからObservableオブザーバブルを返そうとしています。次のコードを見て、コンストラクタの行のコメントを外しても、すべて正常に動作し、サービスのコンシューマは壊れません。しかし、私は、コンストラクタから呼び出しを削除しようとすると、それがでクラッシュ: エラー:XHRエラー(404が見つかりません)ロードhttp://localhost:3847/rxjs/observableAngular2サービスで最初のObservable <T>を作成する方法

は、私は前に初期化するのtodo $プロパティに加入しようとしていると信じています。では、実際にgetメソッドを実際に呼び出さない初期オブザーバを作成するにはどうすればよいですか?つまり、サブスクリプション・ラインが落ちるのを止める何らかの空のObserverが必要です。

これをどのように達成する必要がありますか?

トニー

import {Injectable} from 'angular2/core'; 
import {Http} from 'angular2/http'; 
import {Todo} from './todo'; 
import {Observable} from 'rxjs/observable' 

@Injectable() 
export class TodoService { 

    public todos$: Observable<Todo[]>; 

    constructor(private http: Http) { 

     //this.todos$ = this.http.get('api/Todo').map(res => <Array<Todo>>res.json()); 
    } 

    loadData() { 
     this.todos$ = this.http.get('api/Todo').map(res => <Array<Todo>>res.json()); 
    } 

} 

答えて

2
import {Observable} from 'rxjs/observable' 

私はそれが本当だとは思わない

import {Observable} from 'rxjs/Observable'; 
          ^
+0

でなければなりません。私は大文字の "O"に変わり、赤いスクイプレーが並んでいます。 – tone

+0

小文字の「観測可能」で私に起こります。 http://stackoverflow.com/questions/34376854/delegation-eventemitter-or-observable-in-angular2/35568924も参照してください。あなたの 'config.js'の外観はどうですか? –

+1

Webstormで自動インポートを使用すると、大文字の「O」も得られます。小文字で失敗します。 – PierreDuc

関連する問題