2013-05-27 102 views
0

我傳遞一個上下文對象爲從JavaScript叫menu我的流星/車把模板與功能傳遞給流星模板在上下文中剝離

var context = { 
    keyForString: 'string!', 
    keyForFunction: function(){console.log('function!');} 
}; 

return Template.menu(context); //to be rendered later 

在我Template.menu.functions中,this變量只有keyForStringkeyForFunction(和函數)顯然已被剝離。

這是預期嗎?如果是這樣,我怎樣才能將回調傳遞給我的模板代碼?我想提供一個函數,當點擊菜單上的一個項目時,模板應該調用它。

我希望模板的實例可以共享佈局代碼,但不必共享事件。例如,我有一些像

Template.menu.events = { 
    'click button': function() { 
     this.keyForFunction(); 
    } 
} 

使點擊實例的按鈕可以做的一兩件事,點擊B中的按鈕,可以做一套,這取決於我通過在keyForFunction功能。

+0

完成該操作的正常方法是使用template [events](http://docs.meteor.com/#template_events)。有沒有理由爲什麼這不適合你? –

+0

我想在多個位置呈現相同的模板,但採用不同的操作。我希望實例A和B可以共享佈局代碼,但不必共享事件。例如,我會有'Template.menu.events = {'click button':function(){this.keyForFunction(); }}'這樣點擊A中的按鈕就可以做一件事,然後點擊B中的按鈕來做另一件事。你如何用普通的模板事件來完成這件事? –

+0

(我剛剛更新了這個問題,並更詳細地解釋了我的動機) –

回答

0

事實證明,這與上面所寫的完全一樣。在Session中存儲我正在做但被認爲無關緊要的對象是將這些功能剝離出來的東西。