Ember.js 在Mixin中使用i18n?

Ember.js 在Mixin中使用i18n?,ember.js,ember-i18n,Ember.js,Ember I18n,有没有办法在Mixin中使用i18n。我想为我的字段创建mixin作为配置,我需要翻译标签,但据我所知,我看不到实现这一点的机会。正如Kitler所指出的,您可以将i18n服务注入mixin,以便在组件中使用它们 export default Ember.Mixin.create({ i18n: Ember.inject.service(), translate: function(key, options) { return this.get('i18n').t(key, o

有没有办法在Mixin中使用i18n。我想为我的字段创建mixin作为配置,我需要翻译标签,但据我所知,我看不到实现这一点的机会。

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

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

  translate: function(key, options) {
    return this.get('i18n').t(key, options);
  }
});
你还期望什么?是否要将所有标签修改为?如果要通过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')));
  }
});

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

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

  translate: function(key, options) {
    return this.get('i18n').t(key, options);
  }
});
你还期望什么?是否要将所有标签修改为?如果要通过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')));
  }
});

你可以将服务注入你的mixin。你可以将服务注入你的mixin。谢谢你和kitler。我试图将i18n注入Mixin,但由于输入错误,我没有成功。现在一切都好了!谢谢你,还有基特勒。我试图将i18n注入Mixin,但由于输入错误,我没有成功。现在一切都好了!