2017-02-02 4 views
0

私は最新のVue-Multiselectを実装しており、ページ内でレンダリングしています。何らかの理由でv-modelの値が空になっても有効ではないようです。Vue-Multiselectが空です。 - Laravel Spark

import { Multiselect } from 'vue-multiselect' 

var MultiSelect = Vue.extend({ 
components: { Multiselect }, 
template: '<div><multiselect :options="options" :multiple="true" :close-on-select="false" :clear-on-select="false" :hide-selected="true" placeholder="Please select..." label="name" track-by="name"></multiselect></div>', 
    data: function() { 
     return { 
      value: [], 
      options: [] 
     }; 
    } 
}); 

Vue.component('multi-select', MultiSelect); 

Iは例に従って、すべてのオプションを設定している:に

<multi-select v-model="updateTutorInstrumentsForm.options" group-values="libs" group-label="language"></multi-select> 

    <pre>@{{ updateTutorInstrumentsForm.options }}</pre> 
Output

ビット混乱:

options: [ 
       { 
        language: 'Javascript', 
        libs: [ 
         { name: 'Vue.js', category: 'Front-end' }, 
         { name: 'Adonis', category: 'Backend' } 
        ] 
       }, 
       { 
        language: 'Ruby', 
        libs: [ 
         { name: 'Rails', category: 'Backend' }, 
         { name: 'Sinatra', category: 'Backend' } 
        ] 
       }, 
       { 
        language: 'Other', 
        libs: [ 
         { name: 'Laravel', category: 'Backend' }, 
         { name: 'Phoenix', category: 'Backend' } 
        ] 
       } 
      ], 

これはブレードのコードであります少なくとも言いなさい!

+0

私の推測ではなければならないでしょうあなたがマルチセレクションをカプセル化しているという事実をどうにかして、v-modelには何も付いていません。あなたはデータから小道具に価値を移そうとしましたか?コンポーネントのどこにでもvalueパラメータを使用しているようには見えません。 –

+0

ありがとう@JustinMacArthur、私はあなたのコメントのおかげでそれを解決しました! – davidsneal

答えて

0

私はこれを解決することができました。複数選択をカプセル化についてのジャスティンさんのコメントに

おかげで、私はそれを破ることを決定し、次のことをやった:

import { Multiselect } from 'vue-multiselect' 

var CustomSelect = Vue.extend({ 
components: { Multiselect }, 
template: '<div><multiselect :multiple="true" :selected="selected" :options="options" group-values="instruments" group-label="name" track-by="name" label="name"></multiselect></div>', 

created() { 
    this.getInstruments(); 
}, 

data: function() { 
    return { 
     selected: null, 
     options: [] 
    }; 
}, 

methods: { 
    getInstruments() { 
     this.$http.get('/get/instruments') 
      .then(response => { 
       this.instruments = response.data; 
       this.updateInstruments(); 
      }); 
    }, 

    updateInstruments() { 
     this.options = this.instruments; 
    }, 
} 
}); 

Vue.component('customselect', CustomSelect); 

は、単に刃テンプレート、中:<customselect></customselect>

+0

あなたは大歓迎です。プロジェクトには幸運を祈る。 –

関連する問題