2016-03-02 34 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> 

假設你有時間和預算。

相關問題