2017-03-19 8 views
2

誰かがvue 2.0でブートストラップモーダルを開く方法を知っていますか? vue.jsの前にjQueryを使用してモーダルを開くだけです:$('#myModal').modal('show');vue.js 2.0でブートストラップモーダルを開く

しかし、私はこれをVueで行うべきでしょうか?

ありがとうございます。

+0

では、あなたのモーダルコンポーネントですか?それともテンプレートの一部ですか? – Bert

+0

こんにちは - それは独自のVueコンポーネントにあります –

+0

それはまだjQueryです。 $(this。$ el).modal( 'show')。 Bootstrapが依存しているため、jQueryを完全に排除したい場合は、もっと多くの作業が必要です。 – Bert

答えて

2

私はVue.js Modal exampleBootstrap 3.* live demoのアマルガムを作った。

基本的に私はVue.jsモーダルの例を使用しましたが、Vue.js "html"部分をブートストラップのモーダルhtmlマークアップに置き換えました(私は思います)。私はブートストラップ3から外側のdivを剥がしてしまった。

関連するコードはブートストラップに関するものです。ブートストラップマークアップから外側のdivを取り除くだけで動作します。だから...

ugh、開発者のためのサイトと私は簡単にコードに貼り付けることはできませんか?これは私にとって深刻な問題でした。私だけですか?歴史に基づいて、私はばかげたばかだとコードに貼り付ける簡単な方法がありますので、助言してください。私が試してみるたびに、それはせいぜいフォーマットのひどいハックです。 私は要求された場合、どのようにしたかのサンプルjsfiddleを提供します。

4

マイコードはMichael Tranchidaの回答に基づいています。

HTML:

<div id="app"> 
    <div v-if="showModal"> 
    <transition name="modal"> 
     <div class="modal-mask"> 
     <div class="modal-wrapper"> 
      <div class="modal-dialog"> 
      <div class="modal-content"> 
       <div class="modal-header"> 
       <button type="button" class="close" @click="showModal=false"> 
        <span aria-hidden="true">&times;</span> 
       </button> 
       <h4 class="modal-title">Modal title</h4> 
       </div> 
       <div class="modal-body"> 
       modal body 
       </div> 
      </div> 
      </div> 
     </div> 
     </div> 
    </transition> 
    </div> 

    <button id="show-modal" @click="showModal = true">Show Modal</button> 
</div> 

JS:

new Vue({ 
    el: '#app', 
    data: { 
    showModal: false 
    } 
}) 

CSS:

.modal-mask { 
    position: fixed; 
    z-index: 9998; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    background-color: rgba(0, 0, 0, .5); 
    display: table; 
    transition: opacity .3s ease; 
} 

.modal-wrapper { 
    display: table-cell; 
    vertical-align: middle; 
} 

そしてjsfiddle

関連する問題