2016-03-02 32 views
1

使用handlebar-1.1.2和旧的emberjs 1.5.1。 我有代码:如何将对象传递给handlebar帮助程序

{{#each queue in appController.queues_services_array}} 
    <label for="{{GetObjectId queue}}">{{queue.title}}</label></div> 
{{/each}} 

和助手:

Handlebars.registerHelper('GetObjectId', function(value) { 
    return value.id; 
}); 

的问题是,给予辅助数据只是字符串 “队列”,而不是一个对象。我不知道如何将对象“队列”传递给帮手。

+0

为什么不做'for =“{{queue.id}}”'? –

+0

尝试“this”而不是“queue”,我脑海中的问题是你在#each循环中,并且在你的循环队列中实际上意味着queue.queue –

+0

这是一个很好的选择。也很好奇,为什么Ember版本如此之旧?你有没有尝试重构到更新的版本? –

回答

3

可以使用bind-attr帮助你值绑定到特定属性:

<label {{bind-attr for=queue.id}}>{{queue.title}}</label> 

或者相反,如果你不希望这个值来改变它可以使用未绑定的帮手,这将产生一些改进性能:

<label for="{{unbound queue.id}}">{{queue.title}}</label> 

你能做的最好的事情将是更新到灰烬的新版本,所以你可以利用较新的语法,它允许你使用正车把:

<label for="{{queue.id}}">{{queue.title}}</label> 

假设你有时间和预算。

相关问题