如何在自定义帮助器中使用mixin?

时间:2017-03-15 13:50:05

标签: ember.js

我在mixin中定义了一些辅助函数;但是,我不确定如何在自定义帮助程序中使用这些函数。

我在下面提到了问题,但似乎不再使用$$value1$$方法。

Accessing an Ember.Mixin within a custom handlebars helper

2 个答案:

答案 0 :(得分:1)

如果你有基于类的助手,那么你可以照常使用Mixin。

export default Ember.Helper.extend(YourMixinName,{
  session: Ember.inject.service(),
  onNewUser: Ember.observer('session.currentUser', function() {
    this.recompute();
  }),
  compute() {
    return this.get('session.currentUser.email');
  }
});

答案 1 :(得分:0)

默认帮助程序无法使用mixin,因为它是无状态的。

但是,如果您需要一个与您的应用程序交互的帮助程序。您可以通过创建基于类的帮助程序来实现此目的。

https://guides.emberjs.com/v2.11.0/templates/writing-helpers/#toc_class-based-helpers

下面的代码段是一个基于类的帮助器,

import Ember from 'ember';

export default Ember.Helper.extend({
  compute([value, ...rest], hash) {
    let dollars = Math.floor(value / 100);
    let cents = value % 100;
    let sign = hash.sign === undefined ? '$' : hash.sign;

    if (cents.toString().length === 1) { cents = '0' + cents; }
    return `${sign}${dollars}.${cents}`;
  }
});