2019-11-16 10:21:14 +03:00

58 lines
1.4 KiB
JavaScript
Vendored

import Vue from 'vue';
/*
// Initialize the annoying-background directive.
export const SelectTwo = {
twoWay: true,
bind(el, binding, vnode) {
var variblee = this;
var selectbox = el.getAttribute('id');
var binding2 = binding;
var vnode2 = vnode;
$(vnode.elm).select2()
.on("select2:select", function(e) {
//this.$set($(vnode.elm).val());
}.bind($(vnode.elm)));
},
update: function(nv, ov) {
$('#' + nv.id).trigger("change");
}
}
// You can also make it available globally.
Vue.directive('select-two', SelectTwo);
*/
Vue.component('select2', {
props: ['options', 'value'],
template: '#select2-template',
mounted: function () {
var vm = this
$(this.$el)
// init select2
.select2({ data: this.options })
.val(this.value)
.trigger('change')
// emit event on change.
.on('change', function () {
vm.$emit('input', this.value)
})
},
watch: {
value: function (value) {
// update value
$(this.$el)
.val(value)
.trigger('change')
},
options: function (options) {
// update options
$(this.$el).empty().select2({ data: options })
}
},
destroyed: function () {
$(this.$el).off().select2('destroy')
}
})