mixinの中にいくつかのヘルパー関数を定義しました。しかし、私はどのようにカスタムヘルパーの内部でこれらの関数を使用するか分からない。mixinをカスタムヘルパーの中で使うには?
私は以下の質問に言及しましたが、回答者はもうMixin.apply
メソッドを持っていないようです。
Accessing an Ember.Mixin within a custom handlebars helper
mixinの中にいくつかのヘルパー関数を定義しました。しかし、私はどのようにカスタムヘルパーの内部でこれらの関数を使用するか分からない。mixinをカスタムヘルパーの中で使うには?
私は以下の質問に言及しましたが、回答者はもうMixin.apply
メソッドを持っていないようです。
Accessing an Ember.Mixin within a custom handlebars helper
あなたは、クラスベースのヘルパーを得た場合は、いつものようにミックスインを使用することができます。
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');
}
});
デフォルトのヘルパーは、ステートレスなので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}`;
}
});
私はこれらの詳細ドキュメントを見つけることができますか? –
確かに。 [ヘルプはこのRFCに従うヘルパーのためにはっきりと読む価値がある](https://github.com/emberb/ember/rfcs/blob/master/text/0053-helpers.md) – kumkanillam
ありがとう@kumkanillamあなたは最高です –