angular和asp.net核心的新功能,谢谢您的帮助。
模型:quote.ts车辆.ts car.ts
export interface Quotation {
id: number;
name: string;
cars: Car[];
}
export interface Vehicle {
id: number;
brand: string;
}
export interface Car extends Vehicle {
weight: number;
}
报价服务
export class QuotationService {
baseUrl = environment.apiUrl;
constructor(private http: HttpClient) { }
addQuotation(model: any) {
return this.http.post(this.baseUrl + 'quotation', model);
}
//getCars(): Observable<Car[]> {
// return this.http.get<Car[]>(this.baseUrl + 'quotation');
//}
组件引用。ts
export class QuotationFormComponent implements OnInit {
model: any = {};
constructor(private quotationService: QuotationService) {}
ngOnInit() {
//this.model.cars = this.quotationService.getCars();
}
saveQuotation() {
this.quotationService.addQuotation(this.model).subscribe(() => {
console.log('success');
}, error => {
console.log(error);
});
}
组件引用html
<form #quotationForm="ngForm" (ngSubmit)="saveQuotation()">
<div class="form-group">
<input type="text" class="form-control" id="name" placeholder="name" name="name" [(ngModel)]="model.name">
</div>
<div class="form-group">
<input type="text" class="form-control" id="weight" placeholder="Weight" name="weight" [(ngModel)]="model.cars.weight">
</div>
<div class="form-group">
<button class="btn btn-success" type="submit">Valider</button>
</div>
</form>
第一个错误:
错误TypeError:无法读取未定义的属性“ weight” 在Object.eval [作为updateDirectives](QuotationFormComponent.html:40)
固定于:model.cars的初始化= this.quotationService.getCars() 但是我不明白为什么我需要装载整个汽车数据库以获取注册表?
固定1后出现错误2:
HttpErrorResponse {标头:HttpHeaders,状态:400,statusText:“错误 请求”,网址:“ http://localhost:xxxx/api/quotation”,确定:否,...} 错误:“无法反序列化当前JSON对象(例如 {“ name”:“ value”})键入 'System.Collections.Generic.List`1 [BLABLA.API.Models.Car]',因为 类型需要JSON数组(例如[1,2,3])才能正确反序列化。至 修复此错误,或者将JSON更改为JSON数组(例如[1,2,3]) 或更改反序列化类型,使其成为普通的.NET类型(例如 不是像整数这样的原始类型,不是像数组这样的集合类型 或列表),可以从JSON对象反序列化。 还可以将JsonObjectAttribute添加到类型中以强制其 从JSON对象反序列化。路径“ cars._isScalar”,第1行 位置21。”
我想念的是什么?如何为列表对象创建Input ngModel数组?
谢谢您,感谢您提供文字说明。