目前我有一个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
作为字符串返回。发生了什么事?
答案 0 :(得分:2)
Handlebars& amp; Ember.Handlebars,Ember在内部扩展了Handlebars以增加额外的功能。
如果说你在这里使用了错误的助手,你需要使用Ember.Handlebars.registerBoundHelper
。
Ember.Handlebars.registerBoundHelper('hasHitTarget', function(attribute) {
if (attribute.actual >= attribute.target) {
return block(this);
}
});
答案 1 :(得分:0)
从#each中将一个对象传递给Handlebars Helper并不能按预期工作,由于Ember中的一个错误(目前是v1.0),虽然有一个解决方法...请参阅我的帖子