繁体   English   中英

把手传递给帮手的把手

[英]Handlebars passing object into helper

目前我有一个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作为字符串返回。 这是怎么回事?

Handlebars和Ember.Handlebars之间存在差异,Ember在内部扩展Handlebars以增加额外功能。

那就是说你在这里使用了错误的助手,你需要使用Ember.Handlebars.registerBoundHelper

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

从#each中将对象传递给Handlebars Helper不能按预期工作,由于Ember中的错误(目前是v1.0),虽然有一个解决方法...请在此处查看我的帖子

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM