Angular 9 обязательных вложенных моделей реактивных форм - PullRequest
0 голосов
/ 30 апреля 2020

Я работаю в проекте с. Net Core 3.1 API, Angular 9 и SQL Сервер, идея в том, что я получаю JSON из моего API:

{
"IdProducto": 3,
"NombreProducto": "Pocky",
"Descripcion": "Barquillos cubiertos de chocolate",
"Precio": 15000,
"Cantidad": 10,
"FechaVencimiento": "2020-06-30T00:00:00",
"RutaFotoProducto": "774484",
"TablaNutricion": "77938475",
"FkidCategoria": 3,
"FkidEstadoProducto": 1,
"FkidCategoriaNavigation": {
    "IdCategoria": 3,
    "NombreCategoria": "Chocolates",
    "DescripcionCategoria": "Productos a cubiertos de chocolate",
    "Producto": []
}

, и у меня есть эти интерфейсы в моем Angular:

export interface Categoria {
  IdCategoria: number;
  NombreCategoria: string;
  DescripcionCategoria: string;
}

import {Categoryoria} из './categoria.model';

export interface Producto {
  IdProducto: number;
  NombreProducto: String;
  Descripcion: String;
  Precio: number;
  Cantidad: number;
  FechaVencimiento: Date;
  RutaFotoProducto: String;
  TablaNutricion: String;
  //FkidCategoria:number; This line represents the navigation property of EF Core
  FkidEstadoProducto: number;
  categoria?:Categoria;
}

Мой продукт Product выглядит кое-что вот так:

export class GestionProductoService {

    formRegistroProducto = this.formBuilder.group({
    IdProducto: [0],
    NombreProducto:["",[Validators.required]],
    Descripcion:[""],
    Precio:["",[Validators.required]],
    Cantidad:["",[Validators.required]],
    FechaVencimiento:[""],
    RutaFotoProducto:[""],
    TablaNutricion: [""],
    FkidCategoria:[""],
    FkidEstadoProducto:["",[Validators.required]],
    });

  producto:Producto;
  listaProducto:Producto[];

  get NombreProducto(){
    return this.formRegistroProducto.controls["NombreProducto"];
  }
  get Descripcion(){
    return this.formRegistroProducto.controls["Descripcion"];
  }  get Precio(){
    return this.formRegistroProducto.controls["Precio"];
  }  get Cantidad(){
    return this.formRegistroProducto.controls["Cantidad"];
  }  get FechaVencimiento(){
    return this.formRegistroProducto.controls["FechaVencimiento"];
  }  get RutaFotoProducto(){
    return this.formRegistroProducto.controls["RutaFotoProducto"];
  }  get TablaNutricion(){
    return this.formRegistroProducto.controls["TablaNutricion"];
  }  //get FkidCategoria(){
    //return this.formRegistroProducto.controls["FkidCategoria"];
    //In here I don't know how to implement the caterogia model, because my API is waiting for "FkidCategoria"
  }  get FkidEstadoProducto(){
    return this.formRegistroProducto.controls["FkidEstadoProducto"];
  }
  constructor(private http:HttpClient, private configuracion:ConfiguracionService, private formBuilder:FormBuilder) {}

Но я действительно не понимаю, как реализовать вложенную модель в моей форме и как с ней работать, если кто-нибудь может дать мне подсказку. Это было бы здорово, потому что я у меня есть таблица для отображения данных о продукте, и я хочу использовать атрибут «NombreCategoria» из модели «Категория» вместо «FkidProducto» модель продукта

...