So erhalten Sie den Geschäftsnamen des Ember-Datenmodells

7

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)?

    
chopper 21.11.2013, 09:31
quelle

4 Antworten

26

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:

%Vor%

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:

%Vor%     
typeoneerror 13.02.2015, 21:07
quelle
0

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.

    
Andy Pye 21.11.2013 11:42
quelle
0

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 .

    
Marcio Junior 21.11.2013 14:24
quelle
-1

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%     
chopper 22.11.2013 21:12
quelle

Tags und Links