Ember.js 对于util类来说,这是一个很好的用例吗?

Ember.js 对于util类来说,这是一个很好的用例吗?,ember.js,ember-cli,Ember.js,Ember Cli,我有相同的Ember.$ajax调用在我的Ember应用程序的多个位置使用。我选择使用util类: export default function updateImage(model, token, imageUrl) { return Ember.$.ajax({ url: `api/v1/${Ember.Inflector.inflector.pluralize(model.get('constructor.modelName'))}/${model.get('id')}/upd

我有相同的
Ember.$ajax
调用在我的Ember应用程序的多个位置使用。我选择使用
util
类:

export default function updateImage(model, token, imageUrl) {
  return Ember.$.ajax({
    url: `api/v1/${Ember.Inflector.inflector.pluralize(model.get('constructor.modelName'))}/${model.get('id')}/update-image`,
    type: 'PUT',
    headers: {
      // Used in staging and production
      // In Development, this will send with an empty value. API ignores this header in development anyways
      'X-CSRF-TOKEN': Ember.$('meta[name="csrf-token"]').attr('content'),
      Authorization:  `Token ${token }`
    },
    data: {
      data: {
        attributes: {
          'image-url': imageUrl
        }
      }
    }
  })
}
然后在控制器/路由中,我可以执行以下操作:

  updateImage(user, this.currentSession.get('token'), imageUrl)
  .success(response => {
    user.set('imageUrl', response['users']['image-url']);
    this.flashService.generic('Saved image!');
  })
  .error(response => {
    console.log(response);
  });

这是
util
类的良好用途吗?我可以进一步重构它吗?或者我应该考虑其他的模式吗?mixin是否更适合这种逻辑?

这是一个非常好的用例。它是一种单一、通用的方法,可以在整个应用程序中使用。如果您需要在许多地方使用更相似、相关的方法,或者您想要拆分
updateImage
函数以获得更好的抽象,那么您应该切换到
Mixin
,但现在,一切都好了