2016-07-21 10 views
1

私はすでにこの提案を試みましたが、うまくいきません。 観察可能なdoestには "fromPromise"メソッドがあり、typescriptはエラーを発生させます。Angle 2で私のビューを表示する前に、いくつかのstuff/ajaxコールを解決するにはどうすればいいですか?

import {Observable} from "rxjs/Rx"; 
import {Http} from "@angular/http"; 
import {GLOBAL_CONST} from "../global-const"; 
import {Resolve, ActivatedRouteSnapshot, RouterStateSnapshot} from "@angular/router"; 

export class ResolverSignupBegin{//} implements Resolve<any>{ 

    signupBeginData:any[]; 

    constructor(private http:Http){} 

    getData(){ 
     return this.http.get(GLOBAL_CONST.apiPath + "/user/login/api-logged-in") 
      .map(res => res.json()) 
      .subscribe(
       (data) => { console.log("data", data); return data; }, 
       (err) => { console.log("error", err); } 
      ); 
    } 


    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<any>{ 
     return this.getData(); 
    } 


} 

私は「これ」.getDataはエラー "と言っ上でエラーをhavean:(28、16)TS2322:タイプ『サブスクリプション』『観察可能な』型に代入できません プロパティ『_isScalar』タイプに欠けています「サブスクリプション」。

答えて

1

あなたが購読している場合は、Subscriptionが得られますが、resolveObservableを返す必要があります。

の代わりに、観察を返し、角度があなたがmapdoなどの演算子をインポートする必要があることを購読

getData(){ 
    return this.http.get(GLOBAL_CONST.apiPath + "/user/login/api-logged-in") 
     .map(res => res.json()) 
     .catch((err) => { console.log("error", err); throw err;} 
     .do(
      (data) => { console.log("data", data)}, 
     ); 
} 

を忘れないようにやってみましょう自分で加入します。 Angular 2 HTTP GET with TypeScript error http.get(...).map is not a function in [null]

関連する問題