在Meteor中的onCreated函数中获取模板变量

4

我正在使用Blaze.renderWithData(Template.templateName, { key: value })方法渲染模板;

我可以在模板中使用{{key}}获取值,但是我无法在js代码中获取到这个值。

我已经尝试过:

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

但是变量未定义。


你尝试过使用onRendered回调而不是onCreated吗?http://docs.meteor.com/#/full/template_onCreated:“使用此方法添加的回调在首次评估模板逻辑之前调用。在回调内,this是新的模板实例对象。您在此对象上设置的属性将从使用onRendered和onDestroyed方法添加的回调以及事件处理程序中可见。” - Jeremiah
3个回答

5
您可以使用

标签


this.data.key

或者

Template.instance().data.key

干杯


2

应该是这样的

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

如果您对价值有疑问,请在Chrome开发者工具Firebug的源代码中打断点并尝试调试。这是客户端,因此所有代码都将可用。

0

传递给模板的数据在 onCreated 函数中可以通过 this 访问,因此应该可以这样使用:

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

1
它不起作用。据我所知,thisTemplate.instance()相同。我还尝试过使用非匿名函数Template.templateName.onCreated( function () {而不是Template.templateName.onCreated( () => {的方法。但是什么都不起作用。 - Jamgreen
1
应该是 this.data.key。 - jetlej

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接