角度形式输入到数组对象

时间:2018-11-18 14:33:54

标签: json angular

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数组?

谢谢您,感谢您提供文字说明。

0 个答案:

没有答案