2015-05-23 2 views
0

Странная проблема с Метеор. Я использовал шаблон. макет .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', 
}); 
+1

Я не вижу ничего плохого в коде, который вы показываете. Обработанный обратный вызов должен вызываться по крайней мере один раз, после того как шаблон сначала будет выполнен в DOM. Если он никогда не заходит так далеко, возможно, что-то не так с шаблоном. – illuminaut

+0

Спасибо за ваш комментарий. Я только что понял проблему. Был дубликат Template.layout.rendered в другом .js-файле в другом месте кода. Он был помещен туда случайно, и когда я удалил его, все снова работает отлично. –

ответ

0

Найдена моей проблема, и я извиняюсь за пост.

Был дубликат Template.layout.rendered, определенный в другом файле javascript в другом месте в другом файле js.

Так что я надеюсь, что это поможет кому-то другому, имеющему ту же проблему. Если ваш шаблон. .rendered перестает работать, посмотрите в свои недавно добавленные файлы javascript для дубликата шаблона. независимо от того,. Meteor и Iron Router не вызывают предупреждения или ошибки, если существуют повторяющиеся. Может быть, они должны? Подсказка подсказка

Смежные вопросы