我有一个ReactiveVar,我需要从一个初始化的jQuery插件中读取和修改。不幸的是,我找不到在jQuery事件回调中调用我的模板上下文的方法。这是所有客户端。我不能在这里使用会话。这是一些代码:
设置我的var
Template.player.onCreated(function(){
this.isPlaying = new ReactiveVar;
this.isPlaying.set('false');
})
初始化我的jQuery插件
Template.player.onRendered(function() {
initPlayer()
});
initPlayer()的相关部分:
master = new TimelineMax({
paused: true
});
master.eventCallback("onUpdate", function() {
//Template.instance().isPlaying.set(false) //can't do this here
//reactive variables in jquery events are out of scope?
}
});
我试过在autotracker中运行init函数而没有任何运气。我知道我可以在这里使用Session但我真的想要一个与模板一起被销毁的反应变量。有关如何建模的任何想法吗?
答案 0 :(得分:1)
您应该能够将onRendered
中的变量传递给init函数。尝试这样的东西:
Template.player.onCreated(function(){
this.isPlaying = new ReactiveVar(false);
});
Template.player.onRendered(function() {
// pass the reactive variable to initPlayer
initPlayer(this.isPlaying);
});
var initPlayer = function(isPlaying) {
master = new TimelineMax({paused: true});
master.eventCallback('onUpdate', function() {
isPlaying.set(false);
});
};