5

現在、次のような Ember オブジェクトがあります。

name: 'Bob'
xs: {
    'actual':50
    'target':55
}

に似たフィールドが約 5 ~ 6 個ありますxs。その xs オブジェクトを受け取り、ターゲットがヒットしたかどうかを返すことができるヘルパー メソッドが必要です。

私はこれを行うことを考えました:

Handlebars.registerHelper('hasHitTarget', function(attribute) {
    if (attribute.actual >= attribute.target)
    {
        return block(this);
    }
});

{{#each user in App.userController}}
    {{#hasHitTarget user.xs}}
        Target Hit
    {{/hasHitTarget}}
{{/each}}

私がオンラインで読んだことはすべて、これはうまくいくはずだと言っています。しかし、そうではありません。console.log(attribute)文字列として返されるとuser.xs。どうしたの?

4

2 に答える 2

2

Handlebars と Ember.Handlebars には違いがあります。Ember は Handlebars を内部的に拡張して機能を追加します。

ここで間違ったヘルパーを使用していると言われているため、使用する必要がありますEmber.Handlebars.registerBoundHelper

Ember.Handlebars.registerBoundHelper('hasHitTarget', function(attribute) {
  if (attribute.actual >= attribute.target) {
    return block(this);
  }
});
于 2013-03-11T14:19:04.730 に答える
0

#each 内からハンドルバー ヘルパーにオブジェクトを渡すと、Ember (現在は v1.0) のバグが原因で意図したとおりに機能しませんが、回避策があります ... ここで私の投稿を参照してください

https://stackoverflow.com/a/18787740/1780102

于 2013-09-13T13:54:05.110 に答える