select2.jsを使用するための新しいディレクティブを作成しました。selectイベントのchangeイベント内でコールバックパラメータを呼び出す必要があります。Vue.jsディレクティブ内で関数コールバックを渡して使用する方法
指令コード:
Vue.directive('select', {
twoWay: true,
priority: 1000,
params: ['options', 'change'],
bind: function() {
var self = this;
var vm = this.vm;
var key = this.expression;
$(this.el)
.select2({
data: this.params.options,
theme: "bootstrap",
language: "pt-BR",
containerCssClass: ':all:'
})
.on('change', function() {
self.set($(self.el).val());
self.params.change($(self.el).val());
});
vm.$set(key, $(this.el).val());
},
update: function(value, oldValue) {
$(this.el).val(value).trigger('change');
},
unbind: function() {
$(this.el).off().select2('destroy');
}
})。
と使用:私が見つけた
<select v-select="controller" change="getActions">
.... options ...
</select>
ソリューション(それは最高の場合、私は知らない):ここでは
...
.on('change', function() {
self.set($(self.el).val());
if(typeof vm[self.params.change] == 'function') vm[self.params.change]($(self.el).val());
});
...
私はparam/propとして関数を渡したい場合、コンポーネントとして作成する必要があると思います。 Select2は私の考えではコンポーネントとしてはるかに優れています。 – vbranden