Tôi đang sử dụng select2 để nâng cao phần tử chọn html. Tôi muốn ràng buộc giá trị của phần tử select vào một biến Vue, tuy nhiên Select2 dường như đang ngăn chặn điều này.Ràng buộc lựa chọn Select2 vào dữ liệu mẫu Vue js
Cách tốt nhất để đạt được sự ràng buộc dữ liệu và nghe sự kiện này trong khi giữ lại hành vi Select2 là gì. Tôi tưởng tượng đó là trường hợp liên kết các sự kiện select2 với cá thể Vue.
Tôi đã thực hiện a fiddle chứng minh vấn đề (không chạy dưới đây nhưng hoạt động trên jsfiddle):
$('#things').select2();
new Vue({
el: "#vue-example",
data: {
thing: null,
thing2: null
},
methods: {
log: function(str) {
$('#log').append(str + "<br>");
}
}
});
select {
width: 50%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/0.12.8/vue.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div id="vue-example">
<label>Select2 Select Box</label>
<select name="things" id="things" v-model="thing" v-on="change: log('you changed thing1')">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
</select>
<br>
<br>
<label>Native Select Box</label>
<select name="things" id="things" v-model="thing2" v-on="change: log('you changed thing2')">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
</select>
<pre>{{ $data | json }}</pre>
<div id="log">
</div>
</div>
Ngoài ra kiểm tra giải pháp này: https://stackoverflow.com/q/40973841/2815635 – C2486