2016-12-01 2 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 유효하지 않다. userinfo.FirstName은 정의되지

userinfonull 때 때문에 여전히 오류가 발생합니다 귀하의 경우에는

[(ngModel)]="userinfo.FirstName" 

을되어야 할 이유 ;-) 바나나-A-상자에 이름입니다.

[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"를 사용해야 할 때 (Angular를 사용하고 있기 때문에 필요하지 않음) 코드 내에서 사용자를 리디렉션하는 데 사용해야하는 "Controller"객체를 기반으로 한 객체를 사용하고있었습니다. 그런 다음 ".map (response => response.json())"을 올바르게 사용하여 번역 할 수 있습니다.

관련 문제