2016-12-24 2 views
6

У меня есть некоторые плагины JQuery, которые нуждаются в инициализации, обычно это можно сделать с помощью $(document).ready(function() { }), но это не работает при выполнении этого процесса в компоненте vue created. Имея это в виду, я использовал this.$nextTick(function() { }), но это, похоже, не работает с элементами, которые вводятся в дочерний компонент. Например, я делаю это:Vuejs - Когда должны быть инициализированы плагины jquery

created: function() { 
    this.$nextTick(function() { 
    window.materialadmin.AppOffcanvas.initialize() 
    }) 
} 

У меня есть кнопка, которая вводится в качестве компонента ребенка, но обработчик OnClick это выше код присоединяет не срабатывает. Если я это сделаю:

setTimeout(function() { 
    window.materialadmin.AppOffcanvas.initialize() 
}, 1000) 

Тогда мой обработчик будет связан и работает.

В какой момент правильная точка привязки моих событий, так что мне не нужно полагаться на setTimeout, который взломан?

ответ

3

mounted или updatedLifecycle-Hooks должны решить вашу проблему как смонтированный вызывается после того, как экземпляр только что был установлен где-эль заменяется вновь созданной виртуальной машины. $ Эш и изменяемый вызывается после изменения данных вызывает виртуальный DOM быть повторно -обеспечен и исправлен.

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