Виджет 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 является последней версией.)

Другие вопросы по тегам