2013-09-01 14 views
5

W Ember danych 0,13 pluralizacji zdefiniowano w następujący sposób:Ember Data 1.0.0: Jak działa pluralizacja?

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

Konfiguracja nie istnieje, a zatem nie musi być w inny sposób w celu określenia liczby mnogiej.

Przez magię, wydaje się, że jeśli zrobię znalezisko za pomocą "return this.store.find (" category ");", wywołanie JSON obejmuje/kategorie i nie/kategorie, chociaż w ogóle tego nie określiłem liczba mnoga kategorii to kategorie ...

W jaki sposób dane Ember mogą to określić? Czy istnieje sposób na przesłonięcie?

Thx

+0

Nie mam dogłębnej wiedzy, ale uważam, że funkcjonalność zawarta jest w module ember-inflector (który, jak mi powiedziano, można zastąpić). Zobacz to zatwierdzenie: https://github.com/emberjs/data/commit/9325a1dea594b8ff752886eb7a9d752785282e07 –

+0

Thx. Jest rzeczywiście reguła, która konwertuje "y" na "ies"; w ten sposób kategoria staje się kategorią w findAll. Nie widzisz, jak to zmienić, ale nie masz natychmiastowej potrzeby, ponieważ dane Ember automatycznie pluralizują się. – cyclomarc

Odpowiedz

6

używam następujących w app.js:

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

dla obiektu inflector nie jest dostępna żadna nieregularna funkcja (używam wersji beta2) –

+0

Jacob, zobacz nową odpowiedź, którą dodałem. Powinien działać w wersji beta 2 – macinjosh

2

byłem w stanie przesłonić automatyczne pluralization jednego z moich nazwy modeli, wykonując to za pomocą Ember danych v1.0.0-beta.2

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

Wystarczy zastąpić dontpluralizemebro słowem, którego nie chcesz, aby było ono pluralizowane. Umieszczam to na górze mojego pliku app.js. Jest to oczywiście nieudokumentowane i może się zmienić w dowolnym momencie w przyszłej wersji.

Rozumiem, że auto pluralizacja może być fajna, ale IMHO wydaje mi się, że marnuje cenne KB, zwłaszcza na urządzenia przenośne, za coś, co nie jest całkowicie konieczne.

+0

W przypadku plurowania można zrobić to samo: Ember.Inflector.inflector.rules.irregular ['[plurizeme'] = 'plurizemeeees'; –

5

Nie jestem pewien, jak faktycznie przejść do dokumentacji adaptera REST już, ale ja niedawno zaktualizowany Pluralization Customization section z tych przykładów:

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

Fakt premiowy: W pewnym momencie wersje Ember zmieniły nazwy kanoniczne dla nazw modeli * CamelCased * Przykład: Biorąc pod uwagę model o nazwie 'App.SpecialFormula', w starszych wersjach Ember musiałeś zadeklarować liczby pojedynczo-mnogie jako' special_formula <-> yourchosenpl'' ...w nowszych wersjach Ember musisz użyć 'specialFormula <-> yourchosenplural'. – Abdull

3

Jeśli problemem jest uniknięcie pluralization nazwy modelu w Tylko URL, możesz zastąpić funkcję pathForType, która jest odpowiedzialna za transformację. Nie wpływa to na funkcję liczby mnogiej, a na końcu jest to sposób konfiguracji procesu buildUrl.

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

      pathForType: function(type) { 
       return (type); 
      } 
     }); 
Powiązane problemy