Не уверен, что делаю правильно, но задача стоит такая. Есть инпут, по нажатию на который всплывает календарь - соответственно выбираешь дату, и она меняется в инпуте. Изначально дата стоит - сегодняшний день. Реализация на vue. Календарь, так уж вышло - jquery datepicker.
var today = moment().format('DD.MM.YYYY');
var app = new Vue({
el: '#wrapper',
data: {
theDate: today
},
watch: {
'theDate' : function(value) {
alert(value);
}
}
});
input:
<input v-model="theDate" type="text" id="theDate">
Вызов календаря:
$('#dateStart').datepicker({
autoClose: true,
onSelect: function() {
$('#dateStart').trigger('change');
}
});
В результате, в инпуте сегодняшняя дата - все работает. Если нажать на инпут - вылезает календарь. Выбираю любое значение из календаря - в инпуте все меняется, но во vue переменной theDate - все остается по-прежнему без изменений. Vue просто не видит никаких изменений в инпуте, хотя они есть. Я даже искуственно добавил trigger('change') и все равно нет эффекта. В то же время код:
$(document).on('change', '#theDate', function() {
alert('ok');
});
Срабатывает на отлично.
Задача простая. Изначально в инпуте должна стоять текущая дата, и все расчеты производятся с учетом нее. Если же пользователь выбрал другую дату - то расчеты должны начинаться с этой другой даты. А в моем случае получается, что выбрал что-то юзер или не выбрал - все равно в переменной vue (theDate) лежит сегодняшняя дата без изменений.