在匿名函数中获取 ReactiveVar
Get ReactiveVar in anonymous function
我正在使用 meteor reactive-var 包。如何在模板的 js 文件中定义的匿名函数中获取反应变量?
viewer.js:
Template.viewer.helpers({
counter: function () {
return Template.instance().counter.get();
}
});
Template.viewer.onCreated(function() {
this.counter = new ReactiveVar(0);
});
Template.viewer.onRendered(function(e){
viewerRendered();
});
function getCounter() {
// !!Return reactive counter variable
}
function viewerRendered() {
var counter = getCounter();
$(document).trigger("ViewerCreated",counter);
}
谢谢。
如果需要通过onRendered()
回调在外部函数中访问当前模板,有多种方式:
使用外部函数作为直接回调:
Template.viewer.onRendered(viewerRendered)
function viewerRendered() {
let currentTemplate = this
//...
}
将当前模板作为参数传递:
Template.viewer.onRendered(function() {
viewerRendered(this)
})
function viewerRendered(currentTemplate) {
//...
JavaScript 函数非常灵活,因为 this
是动态的,还有其他访问数据的方法。
以上两个是简单的用例。
您可以对模板做任何您想做的事情,例如访问它的 data, using subscriptions...
我正在使用 meteor reactive-var 包。如何在模板的 js 文件中定义的匿名函数中获取反应变量? viewer.js:
Template.viewer.helpers({
counter: function () {
return Template.instance().counter.get();
}
});
Template.viewer.onCreated(function() {
this.counter = new ReactiveVar(0);
});
Template.viewer.onRendered(function(e){
viewerRendered();
});
function getCounter() {
// !!Return reactive counter variable
}
function viewerRendered() {
var counter = getCounter();
$(document).trigger("ViewerCreated",counter);
}
谢谢。
如果需要通过onRendered()
回调在外部函数中访问当前模板,有多种方式:
使用外部函数作为直接回调:
Template.viewer.onRendered(viewerRendered) function viewerRendered() { let currentTemplate = this //... }
将当前模板作为参数传递:
Template.viewer.onRendered(function() { viewerRendered(this) }) function viewerRendered(currentTemplate) { //...
JavaScript 函数非常灵活,因为 this
是动态的,还有其他访问数据的方法。
以上两个是简单的用例。
您可以对模板做任何您想做的事情,例如访问它的 data, using subscriptions...