我使用以下路径在铁路由器中注销
Router.route('/logout',{
name: 'logout',
onBeforeAction: function(){
Meteor.logout(function(err){
console.log('logging out' + Meteor.userId());
Router.go('/');
});
}
});
当我的应用程序触发时,它在我的应用程序的许多地方使用:
Template._loginButtonsLoggedInDropdown.events({
'click #login-buttons-logout': function (event) {
event.preventDefault();
Router.go('/logout');
}
});
它在任何地方都可以正常工作,但它无法从一个模板注销;实际上是注销但是在20秒左右之后;此特定模板具有3个反应模板的变量和2.onCreated函数中定义的2个预订。 我正在寻找任何提示,为什么它如此缓慢,如果我应该以其他方式关闭模板或订阅?或任何其他原因导致它如此缓慢地退出..
没有路由器的版本工作原理相同(意味着注销仍需要20秒)
'click #login-buttons-logout': function (event) {
event.preventDefault();
Meteor.logout(function(err){
console.log('logging out' + Meteor.userId());
Router.go('/');
});
}
答案 0 :(得分:0)
没有理由使用路由进行注销。只需按如下方式更改事件处理程序:
Template._loginButtonsLoggedInDropdown.events({
'click #login-buttons-logout': function (event) {
event.preventDefault();
Meteor.logout(function() {
Router.go('/');
}
}
});
摆脱路线'退出'。
答案 1 :(得分:0)
问题是我的订阅,虽然我不完全理解为什么。
我的代码是:
Template.observedQuestions.onCreated(function(){
var self = this;
self.autorun(function(comp){
self.subscribe('observedQuestionsFeed');
});
});
然后我改为:
Template.observedQuestions.onCreated(function(){
computation = Tracker.autorun(function(thisComp){
status = Session.get('loggingOut');
console.log('tracker started ' + status);
mySubscription = self.subscribe('observedQuestionsFeed');
if (status){
thisComp.stop();
}
});
});
我在那里手动停止计算并运行。
谢谢大家的帮助。