2016-05-26 10 views
0

EventEmitterをすべてSubjectに変更するのは、イベントを送出する代わりに変数と状態を共有するための推奨方法です。タイプ 'Observable <any>'は、rxjs5のangular2の 'JSON'タイプに割り当てられません

しかし、今私は問題があり、それを解決する方法を理解できません。ここではサンプルコードは次のとおりです。

@Injectable() 
export class TicketsService implements OnInit { 
    private _url = "http://127.0.0.1:3000/api/getAllTickets"; 
    private _refreshTickets:Subject<JSON> = new Subject<JSON>(); 
    public allTickets:JSON; 

    private _url_postNewTicket = "http://127.0.0.1:3000/api/postNewTicket";  

    constructor(private _http:AuthHttp) { 
     this.allTickets = this._refreshTickets 
      .mergeMap(() => this._http.get(this._url)) 
      .map((res:Response) => res.json()) 
      .cache(); 

    } 

    refreshAllTickets() { 
     console.log("refresh all tickets.."); 
     this._refreshTickets.next(null); 
    } 
} 

コンパイラは私に次のエラーを与える:

public/angular/app/tickets.service.ts(26,9): error TS2322: Type 'Observable' is not assignable to type 'JSON'. [1] Property 'parse' is missing in type 'Observable'.

私はallTickets:anyとしてではなく、私が反復するngForを使用するコンポーネントでallTickets:JSONを書くことができると思います - ので、私ngForから配列を必要とするエラーを取得します。

ありがとうございます!

答えて

1

あなたはタイプのものであるとallTicketsを変更することができます。あなたのngForObservable<any>して、あなたがそうのような非同期パイプを使用することができますバインディング:

*ngFor="let ticket of allTickets | async" 
+0

はい、それは実際に働きました。そのような明白な間違い...ありがとう=) – malachi54

関連する問題