Vue datetime v-on:初始加载时触发的输入



我下面有一个日期时间选择器。当最初安装组件时,将激发changeDate方法。

我已经删除了对这个方法的任何其他引用,所以它肯定是由下面的代码引起的。

有人知道这里发生了什么吗?没有用户输入,因此不应该触发此操作。

v-model属性不能与v-on:input一起使用吗?

<datetime
ref="datimepicker"
v-model="meeting.due_date"
v-on:input="changeDate(meeting.due_date)"
/>

我在这里重复了这个问题-https://codepen.io/s89_/pen/QWOrzbv

经过进一步检查,这似乎是出现的包的实际问题,该包已不再维护-https://github.com/mariomka/vue-datetime/issues/272

我想解决这个问题的一种可能方法就是在v-model值上放置一个观察程序,并从那里发出changeDate事件。

您可以在源代码中看到Datetime.vue

created () {
this.emitInput()
},

它调用emitInput

emitInput () {
let datetime = this.datetime ? this.datetime.setZone(this.valueZone) : null
if (datetime && this.type === 'date') {
datetime = startOfDay(datetime)
}
this.$emit('input', datetime ? datetime.toISO() : '')
},

如果你想绕过这个问题,我会检查事件传递的值是否等于meeting.due_date当前的值

你可以做这样的事。

最新更新