2016-04-21 9 views
0

Szenario ist einfach.ExtJs Vorhandener Datensatz beim Hinzufügen eines neuen Datensatzes gelöscht

Ich habe einen Speicher, der von einem API-Endpunkt aufgefüllt wird. In diesem Beispiel gehen wir davon aus, dass wir einen Datensatz in diesem Geschäft haben. Wichtiges Detail hierzu ist, dass die interne ID unseres Datensatzes 2 ist.

Jetzt erstellen wir eine neue Modellinstanz und füllen sie mit einigen Daten. Fügen Sie dem Geschäft hinzu. Dieser Datensatz hat die ID 1. Store.add (neue Modellinstanz) funktioniert einwandfrei.

Jetzt, wenn wir eine dritte Aufzeichnung machen und versuchen, sie dem Laden hinzuzufügen, stoßen wir auf ein Problem. Die ID des dritten Datensatzes ist 2. Die ID des ersten Datensatzes im Speicher ist 2.

Der dritte Datensatz überschreibt den ersten Datensatz und sendet eine Löschung für den Datensatz, der vom Endpunkt abgerufen wurde.

Ist das ein Bug oder ein Feature ...

Antwort

1

Es ist ein Merkmal, zu speichern Modell idProperty als eindeutige Kennung für die Aufzeichnung verwendet und standardmäßig seine 'id', also, wenn Sie mit dem neuen Rekord und Rekord versuchen hinzufügen Dasselbe 'id' ist bereits in dem Speicher vorhanden, den Sie tatsächlich vorhandenen Datensatz aktualisieren.

Sie müssen Ihr Ladenmodell idProperty ändern.

+0

Danke. Allerdings habe ich eine IdProperty im Modell auf den Primärschlüssel für diese Entität festgelegt. Wenn eine neue Instanz des Modells erstellt wird, wird die ID clientseitig generiert. Nach dem Speichern wird der Datensatz mit der aktuellen ID der Entität aus der DB neu geladen. – theturrible

+0

Setzen Sie die ID auf etwas anderes in der Tat beheben Sie das Problem, – theturrible

+0

Vielleicht müssen Sie (Pseudo) zufällige Wert für "ID" Eigenschaft, bevor Sie tatsächliche Daten von Remote-Quelle laden? –

Verwandte Themen