2013-03-11 13 views
5
vorbei

Zur Zeit habe ich ein Ember-Objekt, das wie folgt aussieht:Lenker Helferobjekt in

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

Ich habe etwa 5-6 Felder ähnlich wie xs. Ich brauche eine Hilfsmethode, die dieses xs-Objekt aufnehmen kann und dann zurückgibt, ob das Ziel getroffen wurde oder nicht.

Ich dachte, dies zu tun:

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}} 

Alles, was ich online gelesen habe, sagt diese sollte Arbeit. Aber das tut es nicht. Wenn I console.log(attribute) gibt es user.xs als Zeichenfolge zurück. Was ist los?

Antwort

2

Es gibt einen Unterschied zwischen den Lenkern & Ember.Handlebars, Ember verlängert Lenker intern um zusätzliche Funktionalität hinzuzufügen.

Das heißt, Sie verwenden den falschen Helfer hier, müssen Sie Ember.Handlebars.registerBoundHelper verwenden.

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