Javascript 流星在Session.set之后触发事件

Javascript 流星在Session.set之后触发事件,javascript,session,meteor,Javascript,Session,Meteor,我想在Session.set(“quizStarted”,true)之后聚焦模板中的一个输入框 Template.quick.startQuiz=function(){ return Session.get(“quizStarted”); } startQuizAnimate=函数(){ Session.set(“quizStarted”,true); $('.answerBox').focus();//此行没有焦点 } 模板。测验。事件({ 'click#startQuiz':函数(){ st

我想在
Session.set(“quizStarted”,true)之后聚焦模板中的一个输入框

Template.quick.startQuiz=function(){
return Session.get(“quizStarted”);
}
startQuizAnimate=函数(){
Session.set(“quizStarted”,true);
$('.answerBox').focus();//此行没有焦点
}
模板。测验。事件({
'click#startQuiz':函数(){
startQuizAnimate();
}
}
开始
{{{if startQuiz}
//我想聚焦这个输入文本
{{/if}

{{{if startQuiz}}
中的块包含我想要关注的输入,但是我必须在
Session.set之后调用它(“quizStarted”,true)
完成渲染。如何使用Meteor的最佳实践编写此代码?

使用
跟踪器。afterFlush
注册自定义代码,以便在当前无效的每个计算重新运行后运行,尤其是负责重新提交模板并在
之后插入表单标记的反应式模板计算{{#如果startQuiz}
变得真实

function startQuizAnimate(){
  Session.set("quizStarted", true);
  Tracker.afterFlush(function(){
    $('.answerBox').focus();
  });
}

你救了我一个大麻烦,这是一个完美的解决方案!
Tracker.afterFlush
似乎确实能解决很多人的问题,不是吗?:)
function startQuizAnimate(){
  Session.set("quizStarted", true);
  Tracker.afterFlush(function(){
    $('.answerBox').focus();
  });
}