gpt4 book ai didi

vue.js - 在 vue.js 中使用 Select2(多选)

转载 作者:搜寻专家 更新时间:2023-10-30 22:31:08 25 4
gpt4 key购买 nike

我是 vue 的新手,在 http://vuejs.org/examples/select2.html 遵循了他们的“自定义指令” .

这在仅选择一个项目时效果很好,但当您选择多个项目时,它只会传递第一个。我需要它来传递所有选定的值。

我设置了一个 jsfiddle 来显示此处提供的代码。 https://jsfiddle.net/f3kd6f14/1/

指令如下;

 Vue.directive('select', {
twoWay: true,
priority: 1000,

params: ['options'],

bind: function() {
var self = this
$(this.el)
.select2({
data: this.params.options
})
.on('change', function() {
self.set(this.value)
})
},
update: function(value) {
$(this.el).val(value).trigger('change')
},
unbind: function() {
$(this.el).off().select2('destroy')
}

如有任何帮助,我们将不胜感激。

最佳答案

当 Select2 处于多值模式时,

this.value 无法像您预期的那样工作(更多信息在这里:Get Selected value from Multi-Value Select Boxes by jquery-select2?)。

试试这个(在这里工作 fiddle :https://jsfiddle.net/02rafh8p/):

Vue.directive('select', {
twoWay: true,
priority: 1000,

params: ['options'],

bind: function() {
var self = this
$(this.el)
.select2({
data: this.params.options
})
.on('change', function() {
self.set($(self.el).val()) // Don't use this.value
})
},
update: function(value) {
$(this.el).val(value).trigger('change')
},
unbind: function() {
$(this.el).off().select2('destroy')
}
})

var vm = new Vue({
el: '#el',
data: {
selected: [], // Result is an array of values.

roles : [
{ id: 1, text: 'hello' },
{ id: 2, text: 'what' }
]
}
})

关于vue.js - 在 vue.js 中使用 Select2(多选),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35154138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com