Come posso determinare il "nome del negozio" (non sono sicuro quale sia la terminologia corretta) per un determinato modello ED? Suppongo di avere App.Payment
, esiste un metodo di archiviazione che consente di cercare il nome corrispondente, ad esempio payment
(ad esempio, per l'utilizzo nelle query find
)?Come ottenere il nome del negozio di Ember Data model
risposta
Per Ember dati 1.0 (e versioni successive)
modelName
è una stringa dasherized. Si memorizzato come una proprietà di classe, quindi se avete un esempio di un modello:
var model = SuperUser.create();
console.log(model.constructor.modelName); // 'super-user'
Per Ember dati Pre 1,0
typeKey
è il nome della stringa del modello. Viene memorizzato come una proprietà di classe del modello, quindi se si ha un'istanza di un modello:
var model = App.Name.create({});
console.log(model.constructor.typeKey); // 'name'
Si potrebbe essere alla ricerca di metodo di stringa dasherize di Ember:
var fullClassName = "App.SomeKindOfPayment";
var className = fullClassName.replace(/.*\./, ""); // => "SomeKindOfPayment"
var dasherizedName = Ember.String.dasherize(className); // "some-kind-of-payment"
Ci potrebbe essere un modo integrato per effettuare questa operazione in Ember, ma io non l'ho trovato dopo aver trascorso qualche tempo alla ricerca.
MODIFICA: Ember Data consente anche di passare "App.SomeKindOfPayment" quando è necessario un nome modello, di solito controlla il formato del nome del modello e lo aggiorna al formato richiesto da solo.
store.find
, store.createRecord
e altri metodi di persistenza, utilizzare store.modelFor('myModel')
. Dopo alcune impostazioni, chiama container.lookupFactory('model:' + key);
dove la chiave è "myModel". Pertanto è applicabile qualsiasi sintassi di ricerca fabbrica valida. Per esempio:
Dato un modello chiamato OrderItems
è possibile utilizzare: order.items
, order_items
, order-items
, orderItems
.
Si scopre non c'era bisogno di fare questo, dopo tutto, ed ecco perché:
stavo cercando di rappresentazione stringa del modello ("payment
" per App.Payment
) al fine di chiamare store.findAll("payment")
. Tuttavia, guardando ED source for store
, la funzione findQuery
chiama modelFor
per cercare la fabbrica (App.Payment
) dalla stringa (payment
), a meno che non sia già fornita una fabbrica. E la fabbrica è facilmente accessibile dal controller chiamando this.get('model').type
. Non è necessario convertirlo in una stringa (e viceversa).
Questo è il codice pertinente dalla sorgente Dati di origine.
modelFor: function(key) {
var factory;
if (typeof key === 'string') {
factory = this.container.lookupFactory('model:' + key);
Ember.assert("No model was found for '" + key + "'", factory);
factory.typeKey = key;
} else {
// A factory already supplied.
factory = key;
}
factory.store = this;
return factory;
},
Questo in realtà non risponde alla domanda che hai posto (a differenza di un'altra risposta), sebbene l'informazione sia pertinente. – Alex
- 1. Come accedere a Ember Model dalla Route in Ember CLI
- 2. Come ottenere il nome del data center Cassandra in cqlsh
- 3. Come ottenere il nome del giorno dalla data con momentjs
- 4. Ember Data ha record duplicati
- 5. Ember, Ember Data e MongoDB's _id
- 6. Come ottenere la valuta del negozio Magento
- 7. Socket.IO con Ember e Ember-Data
- 8. Promessa AJAX senza Ember Data
- 9. Ember - Come ottenere il modello del percorso all'interno dell'azione del percorso
- 10. come iniettare il negozio in servizio ember.js
- 11. Formato data negozio in elasticsearch
- 12. Come ottenere l'espressione cron data nome lavoro e nome gruppo?
- 13. Angolare: come ottenere il valore di input senza ng-model
- 14. Come ottenere il nome del tag precedente?
- 15. Come ottenere il nome del paese
- 16. (Django) come ottenere il nome del mese?
- 17. android, come ottenere il nome del pacchetto?
- 18. Come ottenere il nome completo del tipo?
- 19. Molte a molte relazioni con Ember, ember-data e Rails
- 20. Haskell: ottenere il nome del costruttore di dati come stringa
- 21. Data un'istanza di tipo, come ottenere il nome del tipo generico in C#?
- 22. Ember Data non trova il modello, mentre è chiaramente lì
- 23. Self-Join con Ember-Data
- 24. Sottosezioni con emberjs + ember-data
- 25. Posso specificare un negozio su un modello Ember js?
- 26. Transaction with Cassandra data model
- 27. Ember Data 1.0.0: Come funziona la pluralizzazione?
- 28. Come faccio a sapere qual'è il nome del negozio di un certificato?
- 29. come ottenere il response.responseText server dopo carico negozio extjs 4
- 30. Aggiornamento parziale in Ember-Data?
È possibile chiamare lo store da ogni controller/router in cui ci si trova. Pertanto non è necessariamente collegato a una route o funzione. Per ottenere il percorso corrente relativo al nome del tuo negozio, guarda qui: http://stackoverflow.com/questions/18302463/get-current-route-name-in-ember – DelphiLynx