2013-09-01 19 views
5

在餘燼數據0.13,複數被定義如下:Ember Data 1.0.0:多元化是如何工作的?

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

配置不再存在,因此,需要有另一種方式來定義複數。如果我通過「return this.store.find('category');」來查找,JSON調用包含/ categories和not/categorys,儘管我沒有完全指定複數類別是類別...

Ember數據如何確定這一點?有沒有辦法重寫?

THX

+0

我沒有深入的知識,但我相信功能包含在ember-inflector模塊中(我被告知可以替換它)。看到這個提交:https://github.com/emberjs/data/commit/9325a1dea594b8ff752886eb7a9d752785282e07 –

+0

Thx。確實有一條規則將「y」轉換爲「iies」;因此類別成爲findAll中的類別。沒有看到如何重寫,但沒有立即需要,因爲Ember數據自動複數。 – cyclomarc

回答

6

我使用在app.js如下:

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

爲inflector對象沒有不規則的功能可用(我正在使用beta2) –

+0

雅各布,請參閱我添加的新答案。它應該工作在測試版2 – macinjosh

2

我能夠通過這樣使用灰燼數據V1.0.0-beta.2

重寫我的型號名稱一個自動多元化
Ember.Inflector.inflector.rules.uncountable['dontpluralizemebro'] = true; 

只需將dontpluralizemebro替換爲您不想複數的詞。我把它放在我的app.js文件的頂部。顯然這是沒有記錄的,並且可能會在將來的版本中隨時更改。

我可以理解自動多元化如何可以是一個很好的,但恕我直言,我認爲這是浪費寶貴的KB特別是在移動的東西是不完全必要的。

+0

對於plurization你可以做同樣的事情:Ember.Inflector.inflector.rules.irregular ['[plurizeme'] ='plurizemeeees'; –

5

我不知道如何實際導航到REST適配器文檔了,但我最近更新了Pluralization Customization section這些例子:

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

獎金事實:在某一時刻,Ember版本更改了* CamelCased *模型名稱的規範名稱......示例:給定一個名爲App.SpecialFormula的模型,在舊Ember版本中,您必須將單數複數對聲明爲'special_formula <-> yourchosenplural' ...在更新的Ember版本中,您必須使用'specialFormula <-> yourchosenplural'。 – Abdull

3

如果問題是避免型號名稱中的多元化只有url,你可以覆蓋負責轉換的pathForType函數。它不會影響pluralize函數,最後它是配置buildUrl過程的一種方式。

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

      pathForType: function(type) { 
       return (type); 
      } 
     }); 
相關問題