EXTJS-Modell idProperty-Feld mit Modellnamen gefüllt?

9

Ich versuche, eine einfache ExtJS5 App gegen ein Restful RubyonRails Backend zu erstellen. Wenn ich ein Modell instanziiere, füllt ExtJs aus irgendeinem Grund das Feld "idProperty" mit dem Namen des Modells (und des Counters). z.B.

{"Traffic_id": "MyApp.model.Person-1", "externe_id": 0, ...

Ich dachte, das Feld "idProperty" ist im Wesentlichen der Primärschlüssel des Datensatzes und wird normalerweise gesetzt, wenn der Datensatz in den DB eingefügt wird (Autoincrement)

Daher sollte dieses Feld null oder ähnlich sein, da das Modell dem Speicher noch hinzugefügt und mit dem Back-End synchronisiert werden muss.

Was noch mehr Erstaunliches ist, ist, dass das Feld als 'int' definiert ist und ExtJS einen String hineinlegt!

Kann mir jemand sagen, was vor sich geht?

Peter

Unten ist eine app.js zu Geige mit:

%Vor%     
Rhubarb65 07.10.2014, 09:01
quelle

4 Antworten

2

Setze Konfigurationsoptionen: persist: false . Beim Erstellen wird der Wert nicht an den Server gesendet. Diese Option ist nützlich, wenn Felder zum Beibehalten des Status auf dem Client verwendet werden, aber nicht auf dem Server beibehalten werden müssen. Ext.data.field.Field.persist

%Vor%     
ajokn 19.04.2015 14:17
quelle
0

ExtJS weist neu erstellten Modellen eine "provisorische" ID zu; Es kann zwischen Modellen, die auf der Client-Seite erstellt wurden, die noch nicht gespeichert wurden ("Phantom" -Modelle), und solchen, die heruntergeladen wurden, unterscheiden. Als solches weiß es, wann create vs update aufgerufen werden muss, und es wird (ich denke aus dem Speicher) die ID löschen, wenn es auf den Endpunkt create REST hochlädt.

Er benötigt die ID, da das neu erstellte Modell in Filialen gehen kann (z. B. für die Sitzung, wenn nichts anderes).

Der Stil der ID, die Sie sehen, stammt vom Standardgenerator sequential .

Siehe Ссылка für mehr.

>     
Robert Watkins 07.10.2014 13:03
quelle
0

Fügen Sie ein weiteres Feld mit einer calculate-Funktion hinzu und behalten Sie Ihr Modell als falsch. Verwenden Sie dieses Feld in Ihrer View anstelle Ihrer idProperty:

%Vor%     
user3104423 22.05.2017 09:36
quelle
0

Ich habe einen Workaround gemacht. Legen Sie nach der Erstellung der Modellinstanz die ID-Eigenschaft auf null fest.

%Vor%     
Guillermo Abbona 18.07.2017 15:23
quelle

Tags und Links