1

次のように、ハンドルバーに単純な「if-equal」ヘルパーを実装しようとしています。

Ember.Handlebars.registerHelper('ifeq', function(val1, val2, options) {
    return (val1 == val2) ? options.fn(this) : '';
});

そしてそれをそのように使用します(foo変数が「bar」に設定されていると仮定しましょう):

{{#ifequal foo "bar"}} show something {{/ifequal}}

問題は、val1が渡されると、foo変数の実際の値ではなく、文字列「foo」として渡されることです。私のデバッガーでは、this[val1]が実際にfoo変数の期待値に設定されていることを確認できます。

Emberはどういうわけか動作を変更しますか?

4

1 に答える 1

4

Ember.Handlebars.registerHelper文字列を渡すだけです。registerBoundHelper作業中ですが、あなたの場合はこれでうまくいくはずです。

Ember.Handlebars.registerHelper('ifeq', function(val1, val2, options) {
   return (this.get(val1) == val2) ? options.fn(this) : '';
});
于 2012-12-12T06:55:29.207 に答える