我有一个简单的模型:
export class Profile extends ServerData {
name: string;
email: string;
age: number;
}
Run Code Online (Sandbox Code Playgroud)
当我打电话到服务器(Angular 4,$ http)时,我通常会收到以下响应:
{
name: string;
email: string;
}
Run Code Online (Sandbox Code Playgroud)
该age属性丢失。
有什么方法可以使用我的模型并创建默认年龄,以防丢失?如果可能,我希望不必创建2个单独的模型。
我不想将年龄创建为可选属性-我需要它,即使它的默认值不正确也是如此。
更新:
这是我对服务器的呼叫:
results-manager.component.ts:
this.resultsManagerService.getResults(this.config.request.action, this.pagingAndSorting, this.args).subscribe(
results => {
this.results = this.results.concat(results as Profile[]);
Run Code Online (Sandbox Code Playgroud)
results-manager.service.ts:
getResults(action: string, pagingAndSorting: PagingAndSorting, args: string[]): Observable<Profile[]> {
return this.apiService.callServer(
pagingAndSorting,
action,
...args );
Run Code Online (Sandbox Code Playgroud)
}
该请求有效并且我收到了响应,但是即使我定义了默认值(如@msanford的答案所建议),当我在组件中收到响应时,它们也会被删除。同样,如果我向模型添加构造函数(根据董建华的回答)。
后端响应似乎完全覆盖了模型-不仅仅是分配值。
我如何才能仅将值分配给模型而不删除不返回的值?