2016-12-01 5 views
3

データを表示するためにngModelを使用するフォームがあります。しかし、情報を同期してロードするだけで、非同期コードコードを使用しようとすると、何も表示されません。私はフィールド名が正しいことを知っている、私が言ったように、それは同期コードで動作します。私は愚かな私が逃した何かであると確信していますが、私は何を理解することはできません。約束を使用するとngModelにデータが表示されない

userinformation.service.ts最初([...])

getuserinformation(): Promise<UserInformation> { 
      return Promise.resolve(MOCKUSERINFORMATION[0]); 
     } 

userinformation.component.ts

getUserInformation(): void { 
     this.userinformationservice.getuserinformation().then(userdata => this.userinfo = userdata); 
    } 

userinformation.component.html

<input type="text" autofocus="autofocus" name="FirstName" id="firstname" required="required" placeholder="First Name" class="required" ([ngModel])="userinfo.FirstName" /> 

答えて

0

: はここにいくつかのコードのsnippitsです無効です。それが理由;-)

用バナナ・イン・ザ・ボックスの名前だと、userinfonullあるとき、userinfo.FirstNameが定義されていないので、これはまだエラーが発生しますあなたのケースでは

[(ngModel)]="userinfo.FirstName" 

であるべき。

これは

[ngModel]="userinfo?.FirstName" (ngModelChange)="userinfo && userinfo.FirstName = $event" 

又は代替

*ngIf="userinfo" [(ngModel)]="userinfo.FirstName" 

<input>ウェルuserinfoながら、図示されていないがまだ設定されていないこのように動作すべきです。

+0

私はどちらかといえば間違ったことをする必要があります。私は情報が現れないようにしています。単一のエントリをリストに入れてから、* ngForループを使用すると表示されます。 –

+0

質問を編集し、試したことを示すコードを投稿してください。あなたが間違っていたかもしれないことを伝えるのは難しいです。 –

+1

コードを完全に書き直して動作させることができました。私は間違った種類のC#MVCコントローラを使用していました。 –

1

私は間違ったタイプのC#MVCコントローラを使用していました。私は "IHttpActionResult"オブジェクトを返す "ApiController"を使用していたはずだったときに、コード内でユーザーをリダイレクトするために使用する "Controller"オブジェクトに基づいていました。私は ".map(response => response.json())"を使って正しく翻訳することができます。

関連する問題