2015-12-28 86 views
3

我渲染一個模板,Blaze.renderWithData(Template.templateName, { key: value });獲取模板變量onCreated流星

我可以{{key}}得到模板中的價值,但我不能讓我的js代碼的價值。

我已經試過

Template.templateName.onCreated(() => { 
    console.log(Template.instance().key); 
}); 

但是變量是不確定的。

+0

您是否嘗試過使用onRendered回調,而不是onCreated? http://docs.meteor.com/#/full/template_onCreated:「在你的模板的邏輯被第一次評估之前調用這個方法添加的回調。在回調中,這是新的模板實例obj等。你這個對象上設置的屬性將是可見的從onRendered添加的回調和onDestroyed方法和事件處理程序。」 – Jeremiah

回答

0

數據傳遞給模板可在this在onCreated功能, 所以這應該工作:

Template.templateName.onCreated(() => { 
     console.log(this.key); 
}); 
+1

這是行不通的。據我所知,'this'是一樣的'Template.instance()'我也曾嘗試用你的方法與非匿名函數'Template.templateName.onCreated(函數(){',而不是'Template.templateName.onCreated(()=> {'。但沒有任何工程。 – Jamgreen

+1

它應該是this.data.key – jetlej

2

應該

Template.instance().data['your-key'] 

如果你有懷疑的價值是什麼,把在chrome developer toolsfirebug的源代碼中斷並嘗試調試。這是客戶端,因此,所有的代碼將可

3

您可以使用

this.data.key 

Template.instance().data.key 

乾杯