2015-10-27 81 views
2

在我的客戶控制器中,我定義了一些用於填充選擇輸入(下拉)選項的常量數組。如何在Ember-i18n中翻譯控制器成員數組?

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
    occupations: [ 
     {code: 'student', name: "Student"}, 
     {code: 'worker', name: "Worker"}, 
     {code: 'retired', name: "Retired"}, 
     {code: 'other', name: "Other"} 
    ] 
}); 

普通溶液將使用translationMacro函數T()或this.get(「I18N」)。T()圍繞翻譯鍵,但它們不能在這種情況下爲「這個」內部對象使用或數組不會引用控制器。

解決此類情況的最佳做法是什麼?

回答

6

您可以occupations屬性:

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
    i18n: Ember.inject.service(), 

    occupations: function() { 
     var i18n = this.get('i18n'); 
     return [ 
      {code: 'student', name: i18n.t('occupations.student') }, 
      {code: 'worker', name: "Worker"}, 
      {code: 'retired', name: "Retired"}, 
      {code: 'other', name: "Other"} 
     ]; 
    }.property() 
}); 
+0

什麼betweeen注入和進口的區別?我的意思是正常的用例是從'xx/utils/i18n'導入{getI18n}; –