javascript - kall ngModel med egendefinert datatype som grensesnitt


i koden min har jeg laget et grensesnitt som

export interface IEmpresas {
  nome_fantasia : string;
  razao_social : string;
  cnpj : string;
}

nå på komponenten min oppretter jeg en variabel med datatypen som mitt grensesnitt slik:

...
private empresa : IEmpresas;
...

Jeg prøver å gjøre denne variabelen som modell på mitt HTML-input :

<input type="text" [(ngModel)]="empresa.razao_social" id="razao_social">

men av en eller annen grunn får jeg fortsatt:

'Kan ikke lese egenskapen 'razao_social' av udefinert'

Svar #1

Den udefinerte feilen du får skyldes at du ikke har instantiert objektet ditt.

 public empresa : IEmpresas={nome_fantasia:'',razao_social:'',cnpj:''};

P.S. Bruk public i stedet for private, TypeScript public spiller ingen rolle, men private gjør det

Fra Angular-dokumentasjonen
Alle databundne egenskaper må være TypeScript public egenskaper. Angular binder aldri til en TypeScript private egenskap

Faktisk binder det seg til de private egenskapene, men ikke i AoT-modus

Fungerende StackBlitz

Svar #2

Du bør initialisere variabelen din: private empresa : IEmpresas={};.

Relaterte artikler