2013-09-01 13 views
5

In Ember dati 0.13, pluralization è stata definita come segue:Ember Data 1.0.0: Come funziona la pluralizzazione?

DS.RESTAdapter.configure("plurals", { 
category: "categories" 
}); 

configurazione non esiste più e quindi ci deve essere un altro modo per definire plurali.

Per magia, sembra che se faccio una ricerca tramite "restituisci this.store.find ('categoria');", la chiamata JSON include/categories e non/categorys, anche se non l'ho affatto specificato il plurale della categoria è categorie ...

Come possono determinare i dati Ember? C'è un modo per scavalcare?

Thx

+0

Non ho una conoscenza approfondita, ma credo che la funzionalità sia contenuta nel modulo emettitore-inceneritore (che mi è stato detto può essere sostituito). Vedi questo impegno: https://github.com/emberjs/data/commit/9325a1dea594b8ff752886eb7a9d752785282e07 –

+0

Thx. C'è davvero una regola che converte "y" in "ies"; quindi la categoria diventa categorie in findAll. Non vedere come eseguire l'override, ma non è necessario poiché i dati di Ember si pluralizzano automaticamente. – cyclomarc

risposta

6

Sto utilizzando il seguente in app.js:

var inflector = Ember.Inflector.inflector; 
inflector.irregular("patient", "patients"); 
+0

per l'oggetto inflector non è disponibile alcuna funzione irregolare (sto usando beta2) –

+0

Jacob, vedere la nuova risposta che ho aggiunto. Dovrebbe funzionare nella beta 2 – macinjosh

2

ero in grado di ignorare pluralizzazione automatica di uno dei miei nomi dei modelli in questo modo utilizzando Ember dati v1.0.0-beta.2

Ember.Inflector.inflector.rules.uncountable['dontpluralizemebro'] = true; 

Basta sostituire dontpluralizemebro con la parola che non si desidera pluralizzata. Lo metto all'inizio del mio file app.js. Ovviamente questo non è documentato e può cambiare in qualsiasi momento in una versione futura.

Riesco a capire come la pluralizzazione automatica possa essere gradita ma IMHO penso che rifiuti preziosi KB in particolare sui dispositivi mobili per qualcosa che non è del tutto necessario.

+0

Per la pluralità si potrebbe fare lo stesso: Ember.Inflector.inflector.rules.irregular ['[plurizeme'] = 'plurizemeeees'; –

5

Non sono sicuro di come navigare sino alla documentazione dell'adattatore RESTO più, ma di recente ho aggiornato il Pluralization Customization section con questi esempi:

Ember.Inflector.inflector.irregular('formula', 'formulae'); 
Ember.Inflector.inflector.uncountable('advice'); 
+3

Bonus fatto: ad un certo punto, le versioni di Ember hanno cambiato i nomi canonici per i nomi dei modelli * CamelCased * ... Esempio: Dato un modello chiamato 'App.SpecialFormula', nelle vecchie versioni di Ember dovevi dichiarare le coppie singolare-plurali come' special_formula <-> yourchosenplural' ...nelle versioni più recenti di Ember devi usare 'specialFormula <-> yourchosenplural'. – Abdull

3

Se la preoccupazione è di evitare la pluralizzazione del nome del modello in solo url, puoi sovrascrivere la funzione pathForType che è responsabile della trasformazione. Non influenza la funzione pluralize e infine è un modo di configurare il processo buildUrl.

  App.ApplicationAdapter = DS.RESTAdapter.extend({ 
      namespace: 'rest/api', 

      pathForType: function(type) { 
       return (type); 
      } 
     }); 
Problemi correlati