2016-04-11 41 views
0

我目前正試圖從Angular2中的服務返回observable。如果你看下面的代碼,如果我在構造函數中取消註釋行,一切正常,並且服務的使用者不會中斷。但是,當我試圖從構造函數中刪除呼叫時,它與崩潰: 錯誤:錯誤XHR(404未找到)裝載http://localhost:3847/rxjs/observable如何在Angular2服務中創建初始Observable <T>

我認爲,這是試圖訂閱到初始化前的待辦事項$屬性。那麼,如何創建一個初始觀察者,它實際上並不直接調用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」,並且它的紅色squiggley排成一列。 – tone

+0

用小寫'observable'發生在我身上。參見http://stackoverflow.com/questions/34376854/delegation-eventemitter-or-observable-in-angular2/35568924。你的'config.js'看起來像什麼? –

+1

在webstorm中使用自動導入時,它也會給我大寫'O',並且在小寫時失敗。 – PierreDuc