Wie kann ich den "Geschäftsnamen" (nicht sicher, was die richtige Terminologie ist) für ein bestimmtes ED-Modell bestimmen? Angenommen, ich habe App.Payment
, gibt es eine Speichermethode, mit der ich den entsprechenden Namen nachschlagen kann, d. H.% Co_de% (zum Beispiel in payment
queries)?
Für Ember Data 1.0 (und höher)
modelName
ist eine demerisierte Zeichenfolge. Es wird als Klasseneigenschaft gespeichert, wenn Sie also eine Instanz eines Modells haben:
Für Ember Data Pre 1.0
typeKey
ist der String-Name des Modells. Es wird als Klasseneigenschaft des Modells gespeichert. Wenn Sie also eine Instanz eines Modells haben:
Sie suchen vielleicht nach Embers String dasherize-Methode:
%Vor%Es könnte einen eingebauten Weg geben, dies in Ember zu tun, aber ich habe es nicht gefunden, nachdem ich einige Zeit damit verbracht habe, nachzusehen.
BEARBEITEN: Ember Data kann Sie auch dazu bringen, "App.SomeKindOfPayment" zu übergeben, wenn ein Modellname benötigt wird - es überprüft normalerweise das Format des Modellnamens und aktualisiert es selbst auf das erforderliche Format.
store.find
, store.createRecord
und andere Persistenzmethoden, verwenden Sie store.modelFor('myModel')
. Nach einigen Setups rufen Sie container.lookupFactory('model:' + key);
auf, wobei key der 'myModel' ist. Daher ist jede gültige Factory-Lookup-Syntax anwendbar. Zum Beispiel:
Wenn Sie ein Modell namens OrderItems
verwenden, können Sie Folgendes verwenden: order.items
, order_items
, order-items
, orderItems
.
Es stellt sich heraus, dass es nicht nötig war, dies zu tun, und hier ist der Grund:
Ich habe versucht, die String-Repräsentation des Modells (" payment
" für App.Payment
) aufzurufen, um store.findAll("payment")
aufzurufen. Sehen Sie sich jedoch die ED-Quelle für store
, ruft die Funktion findQuery
% modelFor
auf, um die Factory ( App.Payment
) aus der Zeichenfolge ( payment
) abzufragen, es sei denn, es wurde bereits eine Factory bereitgestellt. Und die Fabrik ist leicht zugänglich von der Steuerung durch den Aufruf von this.get('model').type
. Es besteht keine Notwendigkeit, es in eine Zeichenfolge (und zurück) zu konvertieren.
Hier ist der relevante Code aus der Ember-Datenquelle.
%Vor%Tags und Links ember.js ember-data