2015-12-28 85 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 

干杯