首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue-Multiselect为空- Laravel Spark

Vue-Multiselect为空- Laravel Spark
EN

Stack Overflow用户
提问于 2017-02-03 01:15:19
回答 1查看 2K关注 0票数 0

我已经实现了最新的Vue-Multiselect,并让它在页面中渲染ok。由于某些原因,v-model值似乎没有生效,因为它保持为空。

代码语言:javascript
复制
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);

我按照一个示例设置了所有选项:

代码语言:javascript
复制
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' }
                    ]
                }
            ],

这是刀片式服务器中的代码:

代码语言:javascript
复制
    <multi-select v-model="updateTutorInstrumentsForm.options" group-values="libs" group-label="language"></multi-select>

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

至少可以说有点困惑!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-03 06:32:31

我设法解决了这个问题。

多亏了Justin关于封装多选的评论,我决定打破它,并执行以下操作:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42008361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档