在 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 tools
或firebug
的源代码上加上break,然后尝试调试。这是客户端,因此所有代码都可用
【讨论】:
【参考方案3】:传递给模板的数据在 onCreated 函数中的 this
上可用,
所以这应该有效:
Template.templateName.onCreated( () =>
console.log(this.key);
);
【讨论】:
它不工作。据我所知,this
与Template.instance()
相同。我还尝试将您的方法与非匿名函数 Template.templateName.onCreated( function ()
一起使用,而不是 Template.templateName.onCreated( () =>
。但没有任何效果。
应该是this.data.key以上是关于在 Meteor 的 onCreated 中获取模板变量的主要内容,如果未能解决你的问题,请参考以下文章
Meteor Blaze 访问 Template.onCreated 内的 Template.contentBlock