1

有没有办法在 Mixin 中使用 i18n。我想创建 Mixins 作为我的字段的配置,我需要翻译标签,但据我阅读https://github.com/jamesarosen/ember-i18n/wiki/Doc:-i18n-Service我看不到实现这一点的机会。

4

1 回答 1

0

正如 Kitler 所指出的,您可以将 i18n 服务注入到您的 mixin 中,因此您可以在组件中使用它们。

export default Ember.Mixin.create({
  i18n: Ember.inject.service(),

  translate: function(key, options) {
    return this.get('i18n').t(key, options);
  }
});

你更期待什么?您想将所有标签修改为Decorator吗?如果您想通过 mixin 来装饰组件的标签,那么您应该这样做:

export default Ember.Mixin.create({
  i18n: Ember.inject.service(),

  translate: function(key, options) {
    return this.get('i18n').t(key, options);
  },

  init(){ //init or didReceiveAttrs 
    this._super(...arguments);
    this.set('label', this.translate(this.get('label')));
  }
});
于 2016-04-12T12:54:33.267 回答