2017-08-31 9 views
0

次のPopper.jsポップアップがあります。このポップアップでは、Vue.jsクリックイベントをアタッチするボタンがあります。クリックイベントがポップアップ外で働きながらPopper.jsのポップアップディビジョンにVue.jsコードを含めるにはどうすればいいですか?

しかし、それは代わりにポップアップが動作しません。

どのように私は同様に、ポップアップ内で動作するようにchangeText()を得ることができますか?

https://jsfiddle.net/edwardtanguay/jxs5nmxs

HTML:

<div id="app"> 
    <div> 
    Message: {{message}} 
    </div> 
    <div> 
    <button @click="changeText()">outside works</button> 
    </div> 
    <hr/> 
    <a href="#" 
     id="example" 
     class="btn btn-primary" 
     rel="popover" 
     data-original-title="Test Form" 
     data-content=' 
     <div class="form-group"> 
     <label for="exampleInputPassword1">Name</label> 
     <input type="text" class="form-control"> 
     </div> 
     <button @click="changeText()" class="btn btn-success">Submit</button> 
     '>Fill out form</a> 
</div> 

はJavaScript:

var vm = new Vue({ 
    el: '#app', 
    data: function() { 
    return { 
     message: 'hello' 
    } 
    }, 
    methods: { 
    changeText: function() { 
     alert('test'); 
    } 
    } 
}); 

$(function() { 
    $('#example').popover({html: true}); 
}); 

補遺:

答えて

0

理由それはpopoverがそれ自身のhtmlを動的に注入し、明らかにVueはこのテンプレートをコンパイルしないので動作しません。

あなたはこれを克服するためにポップオーバーイベントを使用する必要があります、それは少しハックだが、私は他の方法で表示されていない。

var vm = new Vue({ 
    el: '#app', 
    data: function() { 
    return { 
     message: 'hello' 
    } 
    }, 
    methods: { 
    changeText: function() { 
     alert('test'); 
    } 
    }, 
    mounted: function() { 
    var self = this; 
    $('#example').popover({ 
     html: true 
     }) 
     .on('hidden.bs.popover', function() { 
     self.changeText() 
     }).parent().delegate('.btn-success', 'click', function() { 
     $('#example').popover('hide') 
     }); 
    } 
}); 

https://jsfiddle.net/vangj1uc/

+0

をしかし、このコードはまた、不要な効果があり、 changeText()関数は元の「フォームを記入」ボタンをクリックしたときにも実行されます。このボタンは実際には単にポップオーバーを閉じる必要があります。 –

+0

私はちょうどあなたがどのように実行できるかの例を示しました、私はあなたのロジックが何であるかわかりません、機能が衝突すると2つの異なる機能を使用することができます – Tomer

+0

私はコードを理解しようとしています。あなたはどこで 'hidden.bs.popover'を取得しましたか?私がそれを例えばに変更した場合。 'hidden.bs.popoverx'、送信ボタンはポップアップを隠します。しかし、私は 'hidden.bs.popover'が参照しているところは見ません。 –

関連する問題