Ember, Ember Data und MongoDBs _id

8

Ich habe gesehen, dass diese Frage besprochen wurde, aber ich habe immer noch Probleme damit, Mongos _id in id zu manipulieren. Ich benutze Mungo als mein ORM und während es virtuals hat, kann ich nicht scheinen, dass es richtig funktioniert. Unten ist, was ich in meinem Mungo-Modell habe.

Versuch, aus dem Back-End zu beheben

%Vor%

Wenn ich eine neue Instanz dieses Modells in express erstelle, kann ich wie apt.id nachsehen und die ID zurückbekommen, aber wenn ich die Antwort an den Client sende, habe ich nur _id und nicht id .

Die zweite Lösung, die ich ausprobiert habe, war, eine berechnete Eigenschaft für id zu erstellen, aber aus irgendeinem Grund mag es ember nicht. Es gibt 2 Probleme hier. Ember respektiert eine berechnete Eigenschaft namens id nicht oder zumindest nicht mehr. So sieht mein Glutendatenmodell aus.

Versuch, es vom Frontend aus zu beheben

%Vor%

In meiner Vorlage unten rendert nichts für die ID.

%Vor%

Die linkTo Helfer funktionieren, aber die URL hat null wo die ID sein sollte. Dies führt dazu, dass der Zurück-Knopf aufgebrochen wird und die Daten mehrfach geladen werden. Unten ist mein Router für etwas Kontext.

%Vor%

Wenn ich den Namen meiner berechneten id -Eigenschaft in etwas wie foo ändere und dann meinen Router in path: ':apartment_foo' ändere, entstehen URLs, die die Objektreferenz in der URL haben, zB: #/apartments/<App.Apartment:ember357:null> .

Es ist so etwas, was mich an Glut interessiert. Jede Hilfe wäre willkommen.

    
Chad 12.03.2013, 14:56
quelle

5 Antworten

9

Ab Ember 1.0.0-rc 1 und Ember Data Revision 11 scheint dies die beste Lösung zu sein.

%Vor%     
Chad 12.03.2013, 18:09
quelle
7

Seit Ember Data - Version: v1.0.0-beta.2 konnte ich Folgendes tun:

%Vor%

Ich bin ziemlich neu in Ember, also ist das vielleicht nicht die beste Methode, aber es hat funktioniert!

    
claptimes 25.09.2013 17:10
quelle
5

Ich hatte das gleiche Problem wie Chris mit einer ID, die ungefähr so ​​aussieht:

%Vor%

Das Hinzufügen des $ oid-Teils zur Lösung von claptimes funktionierte für mich.

%Vor%     
owerme 06.11.2013 03:58
quelle
2

Seit der Umstellung auf Ember-CLI hat sich dieser Prozess leicht geändert. Sie möchten dies jetzt tun:

  1. Von der Befehlszeile des Ember-CLI-Projekts:

    %Vor%
  2. Lassen Sie Ihren neu erstellten Serializer folgendermaßen aussehen:

    %Vor%
Josh Hardy 07.04.2015 02:50
quelle
0

Ab Ember 2.0.0 ist die korrekte Art, Mongo-IDs zu normalisieren, die Verwendung von extractId im Serializer. Hier ist ein Beispiel für RESTSerializer, das gegen eine Rails / Grape API läuft:

%Vor%

Beachten Sie, dass Sie isNewSerializerAPI auf true setzen müssen, damit dies funktioniert.

Wenn Sie möchten, können Sie versuchen, zu resourceHash._id.$id oder was auch immer für Sie funktioniert, zu wechseln. Wenn Sie sich nicht sicher sind, versuchen Sie console.log(resourceHash) , die Daten zu überprüfen.

    
tbjers 22.08.2015 23:05
quelle