2017-07-20 15 views
0

TypeScriptを使用してAngular 4にアプリケーションを構築しています。私はこのような表現のためにエラーにAngular4 Typescript;プロパティ 'data'がtype 'any []'に存在しません

Property 'data' does not exist on type 'any[]'

を取得する理由を私は知りません。私はこれを部品から取り出しました。

LoadAllUsers(): void { 
    this.AllUsers.Loading = true; 
    let AdditionalParams = { 
     'page': this.AllUsers.CurrentPage 
    }; 
    this.UserService.All(AdditionalParams) 
     .subscribe(
      (users) => { 
       this.AllUsers.Users = users.data; 
       this.AllUsers.Data = users; 
       this.AllUsers.Loading = false; 
       this.AllUsers.Loaded = true; 
       console.log ("Users response: ", this.AllUsers, this.AllUsers.Users); 
      }, 
      (error)=> { 
       this.AllUsers.Loading = false; 
       console.log ("THE ERROR: ", error); 
       this.AllUsers.RequestStatus = error.status=0; 
       if (typeof error.json == 'function' && error.status!=0) { 
       let errorObject = error.json(); 
       this.AllUsers.RequestError = errorObject; 
       } else { 
       this.AllUsers.RequestError = "net::ERR_CONNECTION_REFUSED"; 
       } 
       this.AllUsers.HasRequestError = true; 
      }); 
    } 

私はこのエラーを回避するには、を使用することができます。 (users) => this.PrepareUsers(users)

TypeScriptについて何か不足しているはずです。私が使用できるのは奇妙なことですerror.status

+1

メッセージは明示的です。 "All"メソッドは、観測可能な配列( 'Observable ')を返します。配列のデータプロパティを取得しようとしましたが、存在しません。 各ユーザーのデータを取得するには、リストを反復処理する必要があります。 – bchampion

+0

はい、今は分かります。私はそれをこのように見えるように変更しました。すべて(AdditionalParams:オブジェクト):Observable { – LogicDev

+2

なぜあなたはどこでも大文字にしていますか? https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines – JGFMK

答えて

3

サービスのメソッドシグネチャをAll(AdditionalParams: any): Observable<User[]>のように変更する必要があります。もちろん、これはユーザーモデルがある場合です。 また、変数とメソッドは小文字で始まる必要があります。

0

(users)パラメータでサービスから返されるデータは配列です。すべての配列は同じプロパティとメソッドを持ちます。 .dataは、配列のプロパティまたはメソッドではありません。

あなたはアレイタイプにあなたの特定の問題は、コンソールに(users)を記録し、データがどのように見えるかを確認することですデバッグに役立つかもしれhere

何かすべてのプロパティとメソッドを見つけることができます。

LoadAllUsers(): void { 
    this.UserService.All(AdditionalParams) 
     .subscribe(
      (users) => { 
       console.log(users); 
      }); 
    } 

あなたのデータは、あなたが期待している形であなたに戻ってこないかもしれません。

関連する問題