Странная проблема с Метеор. Я использовал шаблон. макет .render для запуска функции javascript всякий раз, когда загружается страница, использующая макет layoutTemplate под названием макет. Он работал, стрелял кодом всякий раз, когда был оформлен шаблон макета, но он недавно прекратил работать.Метеоритный шаблон снят с работы
Пример кода, в layout.js
:
Template.layout.created = function() {
alert("created");
}
Template.layout.rendered = function() {
alert("foo");
}
Template.layout.created
работает отлично (я вижу его всплывающее окно). Но Template.layout.rendered
не запускается вообще. В этом блоке нет всплывающего окна или какого-либо другого кода.
Другие страницы работают со своим кодом Template.name.rendered
. Например, в index.js
:
Template.index.rendered = function() {
alert("index rendered");
}
Это работает. Я вижу всплывающее окно index rendered
.
Кто-нибудь видел что-нибудь подобное?
Я использую железный маршрутизатор, хотя я сомневаюсь, что проблема с Железным маршрутизатором, вот конфиг:
Router.configure({
layoutTemplate: 'layout',
});
Router.route('/', {
name: 'index',
});
Я не вижу ничего плохого в коде, который вы показываете. Обработанный обратный вызов должен вызываться по крайней мере один раз, после того как шаблон сначала будет выполнен в DOM. Если он никогда не заходит так далеко, возможно, что-то не так с шаблоном. – illuminaut
Спасибо за ваш комментарий. Я только что понял проблему. Был дубликат Template.layout.rendered в другом .js-файле в другом месте кода. Он был помещен туда случайно, и когда я удалил его, все снова работает отлично. –