У меня есть шаблон timeline
, где я отображаю текущее время и значения, полученные из него. Для этого я привязал к моему шаблону reactiveVar
, и я обновляю его в autorun
, прикрепленном к тому же шаблону.Как я должен убедиться, что `Template.autorun()` не запущен?
Вот как это выглядит:
Template.Timeline.created = function(){
this.time = new ReactiveVar(moment(new Date().getTime()).format('dddd d MMMM YYYY - HH:mm:ss'));
};
Template.Timeline.rendered = function(){
var self = this;
self.autorun(function(){
Meteor.setInterval(function(){
console.log("tick!");
self.time.set(moment(new Date().getTime()).format('dddd d MMMM YYYY - HH:mm:ss'));
}, 1000);
});
};
Template.Timeline.destroyed = function(){
console.log("template destroyed");
};
Проблема заключается в том, что даже если шаблон будет уничтожен (не тот же маршрут, не отображается больше, мой console.log("template destroyed")
был показан), я неопределенно получить «клещ «консольный журнал, как будто шаблон все еще отображается.
Я, очевидно, что-то пропустил, и я ничего не понимаю. Почему мой setInterval
все еще активен, если его шаблон отсутствует?
Вам необходимо явно очистить 'setInterval' с помощью [Meteor.clearInterval] (http://docs.meteor.com/#/full/meteor_clearinterval) –