In diesem Artikel wird hauptsächlich die Lösung für das Problem vorgestellt, dass Vue den Wert des Datepicker-Eingabefelds bei Verwendung des Datepicker-Plug-Ins eines Drittanbieters nicht überwachen kann. Interessierte Freunde können darauf verweisen >
1 , HintergrundIm Vue-Projekt wird ein Datepicker-Plugin eines Drittanbieters verwendet. Nach der Auswahl des Datums kann Vue die Änderung des Datepicker-Eingabefelds nicht erkennen
<label class="fl">日期:</label> <p class="input-wrapper fr"> <input class="daterangepicker" ref="datepicker" v-model="dateRange"/> <a href="javascript:;" rel="external nofollow" ></a> </p> export default { data() { return { dateRange: '' } }, watch: { dateRange(newVal, oldVal) { console.log(newVal) // 选择日期后无法监听dateRange的改变 } } }
Bei der Suche nach Informationen wurde festgestellt, dass Vue Datenänderungen, die durch Plug-Ins von Drittanbietern verursacht werden, tatsächlich nicht überwachen kann. Die obige Methode funktioniert also nicht. Vue stellt uns jedoch eine Methode zur Verfügung, mit der alle Daten in Daten umgewandelt werden können, die von Vue überwacht werden können: vm.$set.
3. LösungNehmen Sie den Datepicker, den ich als Beispiel verwende (jquery-daterangepicker)
data() { return { date: '', beginDate: '', endDate: '' } }, mounted () { $('.daterangepicker').dateRangePicker({ autoClose: true, format: 'YYYY-MM-DD' }).bind('datepicker-change', this.setDate) //插件自带方法,选择日期后触发回调 }, methods: { setDate() { let datepicker = this.$refs.datepicker //这一步是关键,具体说明可以参见vue api手册 this.$set(this.date, 'beginDate', datepicker.value) this.$set(this.date, 'endDate', datepicker.value) this.beginDate = this.date.beginDate.slice(0, 11) this.endDate = this.date.endDate.slice(-10) } }, watch: { // 这里就可以监听数据变化啦,可以愉快的选择日期了! beginDate(newVal, oldVal) { this.$emit( 'beginDateChange', newVal ) }, endDate(newVal, oldVal) { this.$emit( 'endDateChange', newVal ) } }
Das Obige ist, was ich für alle zusammengestellt habe, Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.
Verwandte Artikel:
So implementieren Sie die Bildvorschaufunktion im WeChat-AppletSo verwenden Sie JQuery, um den Akkordeoneffekt zu implementieren So verwenden Sie dreistufige Verknüpfungsselektoren in WeChat-MiniprogrammenPHP-Schließungen und anonyme Funktionen (ausführliches Tutorial)Über benutzerdefinierte Ereignisse in Vue-Komponenten (ausführliches Tutorial)Wie man JS verwendet, um den Ball zu implementieren, der der Bewegung der Maus folgtDas obige ist der detaillierte Inhalt vonDas Datepicker-Plugin in Vue kann den Wert des Datepicker-Eingabefelds nicht überwachen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!