在 Meteor 的 onCreated 中获取模板变量

Posted

技术标签:

【中文标题】在 Meteor 的 onCreated 中获取模板变量【英文标题】:Get template variable in onCreated in Meteor 【发布时间】:2016-04-02 10:57:46 【问题描述】:

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

我可以使用key 在我的模板中获取值,但我无法在我的 js 代码中获取值。

我试过了

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

但变量未定义。

【问题讨论】:

您是否尝试过使用 onRendered 回调而不是 onCreated?docs.meteor.com/#/full/template_onCreated:“在第一次评估模板逻辑之前调用使用此方法添加的回调。在回调中,这是新的模板实例对象。您在此对象上设置的属性将从使用 onRendered 和 onDestroyed 方法添加的回调以及事件处理程序中可见。" 【参考方案1】:

你可以使用

this.data.key

Template.instance().data.key

干杯

【讨论】:

【参考方案2】:

应该是

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

如果你对值是什么有疑问,请在chrome developer toolsfirebug的源代码上加上break,然后尝试调试。这是客户端,因此所有代码都可用

【讨论】:

【参考方案3】:

传递给模板的数据在 onCreated 函数中的 this 上可用, 所以这应该有效:

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

【讨论】:

它不工作。据我所知,thisTemplate.instance() 相同。我还尝试将您的方法与非匿名函数 Template.templateName.onCreated( function () 一起使用,而不是 Template.templateName.onCreated( () => 。但没有任何效果。 应该是this.data.key

以上是关于在 Meteor 的 onCreated 中获取模板变量的主要内容,如果未能解决你的问题,请参考以下文章

Meteor - 从子助手访问父模板变量

Meteor Blaze 访问 Template.onCreated 内的 Template.contentBlock

在 Meteor 的钩子中更改反应变量的值

Angular-Meteor - 如何在基于包的设计中包含 ng 模板?

如何在模板中获取 Meteor.call 函数的结果

在 Meteor 中获取集合的索引列表