2013-12-23 51 views
3

我有這個視圖MessagesView我想呈現n子視圖,每個子視圖都是MessageViewEmber.js:將參數傳遞給使用Handlebars呈現的子視圖{{view}}幫助器

車把模板部分,爲MessagesView看起來像這樣:

{{#each message in controller}} 
    {{#link-to "message" message class="list-group-item"}} 
     {{view view.messageView}} 
    {{/link-to}} 
{{/each}} 

視圖定義是非常簡單的,唯一感興趣的位可能是:

MessagesView = Ember.View.extend({ 
    messageView: MessageView, 
    ... 
}); 

MessageView = Ember.View.extend({ 
    messageId = 0; 
}); 

我要初始化MessageView.messageId到在{{#each}}幫手message.id的特定值。就像這個假設的代碼塊:

{{view view.messageView({messageId: message.id})}} 

我沒有看到任何方式來做到這一點。有人能指出我有什麼計劃可以讓我這樣做,或者可以概述任何其他標準做法嗎?

編輯:


我看到,可以通過{{view}}幫手,像這樣被傳遞到子視圖viewName屬性,here

{{#view viewName="aChildByName"}} hi {{/view}} 

我猜我問如何將其他通用屬性發送到子視圖。

EDIT 2


大多爲未來的訪客,這在Components討論中被提及。

回答

4

您可以通過在調用視圖時將其添加爲「屬性」來實現此目的。

{{#each message in controller}} 
    {{#link-to "message" message class="list-group-item"}} 
     {{view view.messageView messageId=message.id}} 
    {{/link-to}} 
{{/each}} 

查看this fiddle的樣本。

+0

大聲笑。沒有期待這一點。我幾乎試圖盲目地嘗試。順便說一句,它在文檔中的任何地方都提到過嗎? –

+0

我相信至少已經提到它,但現在我找不到它了。 –

+1

沒關係。在這裏找到它:http://emberjs.com/guides/components/passing-properties-to-a-component/ –

相關問題