我更改了我的模型以符合使用实体框架的要求,但与此模型相关的视图无法使用新模型:
export class CV {
public Id: number;
public UserId: string;
public Context: string;
public Competences: Array<Competence>;
public Expertises: Array<Expertise>;
public Formations: Array<Formation>;
public Missions: Array<Mission>;
}
更改前的模型是:
export class CV {
public id: number;
public userId: string;
public context: string;
public competences: Array<Competence>;
public expertises: Array<Expertise>;
public formations: Array<Formation>;
public missions: Array<Mission>;
示例,我从控制台显示一个对象: Screenshot from my chrome console
所以我想在我的视图中更新模型,但我不知道如何。我尝试过不同的东西,比如ChangeDetectorRef,但没有任何工作。
提前感谢您的帮助!
答案 0 :(得分:0)
我建议您使用Interfaces
代替课程,因为在查看模型时,您不需要课程。因此,将其更改为界面:
export interface CV {
Id: number;
UserId: string;
Context: string;
Competences: Array<Competence>;
Expertises: Array<Expertise>;
Formations: Array<Formation>;
Missions: Array<Mission>;
}
由于您的属性名称与您收到的数据不匹配,因此您需要映射值并使用与您的模型匹配的属性设置数据。
所以你的服务功能应该是这样的:
getData() {
return this.http.get('the url')
.map(res => res.json().map((x:any) =>
Object.assign({Id:x.id,UserId:x.userId,/* Rest of the properties here */})))
}
然后在您的组件中正常订阅并将传入数据指定为CV
类型的数组。