I am trying to display some data to html component from an ASP .NET Core API using Angular and Typescript, the response are returning correct values and the promise work well.
The problem is the html page loads before the promise is resolved, so the values displayed are undefined.
What can i use to make the page loads after the promise is resolved and how?
fileshare.component.ts
export class FileShareComponent implements OnInit {
constructor(
private route: ActivatedRoute,
private router: Router,
private service: UserService,
private http: HttpClient
) {
const file: string = this.route.snapshot.queryParamMap.get('file');
this.http.get(this.service.BaseURL + '/Share?IdentityString=' + file)
.toPromise()
.then(res => {
this.service.sharedFormData = res as ShareModel;
console.log(this.service.sharedFormData);
});
}
ngOnInit() {
}
}
fileshare.component.html
<pre><code class="hljs">Name:
{{service.sharedFormData.Name}}</code></pre>
<pre><code class="hljs">Description:
{{service.sharedFormData.Description}}</code></pre>
<pre><code class="hljs">Syntax:
{{service.sharedFormData.Syntax}}</code></pre>
<pre><code class="hljs">LastModified:
{{service.sharedFormData.LastModified | date: "HH:mm dd/MM/yyyy"}}</code></pre>
<pre><code class="hljs">Content:
{{service.sharedFormData.Content}}</code></pre>
<div class="form-group text-center mt-4">
<button class="btn btn-dark" (click)="this.service.raw()" type="submit"><i class="fas fa-database"></i>
Raw</button>
</div>
share-model.model.ts
export class ShareModel {
Id:number;
Name: string;
Description: string;
Syntax: string;
IdentityString:string;
LastModified: string;
Content: string;
FileId: number;
}