2016-12-24 20 views
6

Mam kilka wtyczek JQuery, które wymagają inicjowania, zwykle można to zrobić za pomocą $(document).ready(function() { }), ale wydaje się, że to nie działa, gdy robimy to w ramach zdarzenia created komponentu vue. Mając to na uwadze, skorzystałem z wersji this.$nextTick(function() { }), ale wydaje się, że nie działa ona z elementami wprowadzonymi do komponentu potomnego. Na przykład, mogę to zrobić:Vuejs - Kiedy powinny być zainicjalizowane wtyczki jquery

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

Mam przycisk, który jest wprowadzany w składniku dziecka, ale obsługi onclick to powyższy kod przywiązuje nie wywoła. Jeśli to zrobię:

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

Następnie mój moduł obsługi kliknięć będzie związany i działa.

W jakim punkcie jest właściwy punkt, aby powiązać moje zdarzenia, aby nie musieć polegać na setTimeout, który jest hacky?

Odpowiedz

3

mounted lub updatedLifecycle-Hooks powinno rozwiązać problem jak zamontowany jest wywoływana po instancja właśnie został zamontowany gdzie el otrzymuje nowo utworzonej maszynie wirtualnej. $ El i aktualizowany jest wywoływana po zmianie danych powoduje wirtualny DOM być ponownie -przypomniany i załatany.