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 TypeScriptpublicegenskaper. Angular binder aldri til en TypeScriptprivateegenskap
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={};.
