Виджет jQuery (jPanelMenu) перестает работать при изменении маршрута метеора
Я реализовал jPanel Menu через визуализированный шаблон, который прекрасно работает, пока маршрут не будет изменен, затем меню перестанет работать. Вот код, который я использую, чтобы вызвать плагин.
Template.mobileMenu.rendered = function(){
var jPM = $.jPanelMenu({
menu: '#mobile-menu',
trigger: '.menu-trigger'
});
jPM.on();
};
Шаблон загружается на все страницы нижнего колонтитула. Я думаю, что необходимо изменить при изменении маршрута, или предотвратить повторный запуск. Я не уверен, какой. Спасибо за любые советы.
2 ответа
Решение состояло в том, чтобы обернуть это в если не предоставленный, чтобы препятствовать тому, чтобы это было повторно предоставлено при изменениях шаблона / маршрута.
Template.mobileMenu.rendered = function(){
if (!this.rendered){
var jPM = $.jPanelMenu({
menu: '#mobile-menu',
trigger: '.menu-trigger'
});
jPM.on();
this.rendered = true;
}
};
Это похоже на проблему, с которой сталкиваются многие люди при использовании сторонних компонентов пользовательского интерфейса. Я собрал рабочий пример использования модального диалогового компонента, который может помочь:
https://github.com/alanning/meteor-modal-example
Также я должен отметить, что новая система рендеринга Meteor UI "Blaze" должна устранить подобные проблемы. Я ожидаю, что Blaze будет выпущен в ближайшее время.
(Для тех, кто приезжает из будущего, на момент написания статьи Meteor v0.7.0.1 является последней версией.)