2016-12-24 7 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取り付けられたとして、あなたの問題を解決する必要がありますインスタンスはちょうどエルが新たに作成されたVMによって置換される$エル。搭載され、更新された後に呼び出されたデータの変更は、仮想DOMを再されます後に呼び出されます - レンダリングとパッチ適用。

関連する問題