Die Klasse Ext.data.Model
repräsentiert die Back-End-Modelle. Und genau wie im Servercode können einige Felder eines anderen deklarierten Modelltyps über die Eigenschaft reference
sein. Ich habe herausgefunden, dass die Verwendung der getAssociatedData()
-Funktion eines Modells ein Objekt mit all diesen referenzierten Feldern zurückgibt. Sie enthalten jedoch nur das Datenobjekt des Referenzobjekts, das nicht vollständig initialisiert wurde Ext.data.Model
s, wodurch ein primitiver Objektzugriff erzwungen wird und es keine Möglichkeit gibt, die konfigurierten Proxys des Modells zum Laden/Speichern zu verwenden. Ist das die richtige/einzige Möglichkeit, diese Funktionalität zu nutzen? Wir haben auch nach einer Möglichkeit gesucht, Spalten aus referenzierten Feldern in einem Gitter hinzuzufügen, aber es scheint nicht zu funktionieren ... Ich fange an zu zweifeln, wie nützlich es ist, referenzierte Felder zu deklarieren.Extjs: Wie verwenden Sie die Associate-Daten eines Feldverweises eines Modells richtig?
Beispielcode:
Ext.define('MyApp.ModelA', {
extend: 'Ext.data.Model',
fields: [{
name: 'modelb',
reference: 'MyApp.ModelB'
}]
});
Ext.define('MyApp.ModelB', {
extend: 'Ext.data.Model',
fields: [{
name: 'modelId',
type: 'int'
}]
});
//...
var modelA = new MyApp.ModelA().load();
var modelB = modelA.getAssociatedData().modelb; //This is the only way to access it.
var modelBId = modelB.get('modelId') //This returns undefined because the function .get doesn't exist.
var modelBId = modelB.id; //This works because it is a simple object property access.
//...
Versuchen Sie, dies zu tun 'var modelB = modelA.getModelb()' –