ich verwenden möge [(ngModel)] für ein verschachteltes Objekt gelesen, aber mir einen FehlerZwei-Wege-Bindung - verschachteltes Objekt - eckig - Kann nicht Eigentum von undefined
Cannot read property 'mxn' of undefined
diese schenken sind die Datenstruktur meiner Modelle:
company.model.ts
import Currency from './currency.model';
class Company {
_id: string;
name: string;
maxLimit: number;
source: [string];
deliveryMethod: [string];
currency: Currency;
date: Date;
constructor() {
this.name = '';
this.date = new Date();
this.maxLimit = 0;
this.source = [''];
this.deliveryMethod = [''];
this.currency.mxn = 0;
this.currency.php = 0;
}
}
export default Company;
currency.model.ts
class Currency {
mxn: number;
php: number;
constructor() {
this.mxn = 0;
this.php = 0;
}
}
export default Currency;
und dies ist ein Teil von company.ts
public newCompany: Company = new Company();
companiesList: Company[];
editcompanies: Company[] = [];
und HTML
in HTML-Seite ich in der Lage bin den mxn
Wert zeigen, indem sie einfach mit:
<tr class="companies" *ngFor="let company of companiesList">
{{company.currency.mxn}}
aber Wenn ich es mit ngModel
Zwei-Wege-Bindung für die Aktualisierung des Werts verwenden und es an die Datenbank senden will, funktioniert es nicht.
[(ngModel)] = "newCompany.currency.mxn"
es erzeugt den oben genannten Fehler. Wenn ich [(ngModel)] = "newCompany.currency"
verwende, gibt es mir keinen Fehler, aber der Code ist nutzlos, da ich mxn
keinen Wert zuweisen kann.
Ich muss sagen, dass es funktioniert gut mit diesem und ich kann den Namen aktualisieren.
das Backend funktioniert gut, als ich es mit Postman versuchte. das Problem ist die winklige Seite.
so ist die Frage, ob meine Datenstruktur korrekt ist, wie kann ich bidirektionale Bindung für das verschachtelte Objekt verwenden?
sollten Sie nicht zuerst die Währung Mitglied in der Firma Klassenkonstruktor instanziieren? –
Danke, Sie waren alle richtig. Es funktionierte, indem nur die Währung instanziiert wurde. – Milad