2017-11-23 5 views
0

私はbulmaを試しています。私がしたいのは、クリックするとshow the loading icon over a buttonです。ボタンをクリックするとVue JS add bulmaクラスが読み込まれます

ここでは、ヘッド部です:

<head> 
    <meta charset="UTF-8"> 
    <title>Button loading in Bulma</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.6.0/css/bulma.min.css"> 
</head> 

これは、体のコードです:ここで

<div class="container"> 
     <!--Vue container--> 
    <div id="app"> 
     <div class="tile notification is-info"> 
      <div class="column"> 
       <h1>Newsletter</h1> 
       <form> 
        <!-- Email --> 
        <div class="field"> 
         <label class="label" for="email">Email</label> 
         <div class="control"> 
          <input class="input is-small" type="email" id="email" placeholder="[email protected]" autofocus> 
         </div> 
        </div> 
        <!-- Submit button --> 
        <div class="field"> 
         <div class="control"> 
          <button class="button is-primary" @click="loadingClass = 'is-loading'" :class="{ loadingClass }">Submit</button> 
         </div> 
        </div> 
       </form> 
      </div> 
     </div> 
    </div> 

は、私ができるvue.jsスクリプト

<script src="https://unpkg.com/vue"></script> 
<script> 
    var app = new Vue({ 
     el: '#app', 
     data: { 
      loadingClass: '' 
     } 
    }) 
</script> 

ですそれを働かせないでください。私は何が欠けていますか?

ソリューション:

まあ、私は回避策here in the docsを発見したので、次のように私はそれを修正した:

フォーム:

<!-- Submit button --> 
         <div class="field"> 
          <div class="control"> 
           <button class="button is-primary" v-bind:class="{ 'is-loading' : loading }">Submit</button> 
          </div> 
         </div> 

スクリプト:

<script> 
    var app = new Vue({ 
     el: '#app', 
     data: { 
      loading: false 
     } 
    }) 
</script> 

私が共同で変更したnsole app.loading=true;ボタンが「読み込み中」に変わり、viceversaがapp.loading=false; となりました。

+0

回避策のようには見えません。それがあなたがそれをする方法です。クラス属性を倍にするべきではないことを除いて。以下のように、静的クラスを動的クラスに入れてみてください! – bbsimonbb

答えて

0

data:あなたのページの状態の純粋な説明をしたいので、あなたのハンドラで次にclicked : false

を入れて、自分の状態を変更するの[OK]:@click="clicked = true"

その後、あなたの動的クラスのリストに、入れバルマーロードクラス。

:class="{'button':true, 'is-primary':true, 'is-active':clicked}" 

それはそれをカバーしていますか?

関連する問題