Javascript 将Getter Setter与Vue v-model和JQuery一起用于日期选择器输入
我将jquery插件(datepicker)与vue一起安装,并将其嵌入到一个组件中,该组件带有用于v-model数据流的getter和setter 我成功地将jquery datepicker输入检索到一个v-model组件,但并非无法按如下方式显示它:Javascript 将Getter Setter与Vue v-model和JQuery一起用于日期选择器输入,javascript,jquery,vue.js,vuejs2,vue-component,Javascript,Jquery,Vue.js,Vuejs2,Vue Component,我将jquery插件(datepicker)与vue一起安装,并将其嵌入到一个组件中,该组件带有用于v-model数据流的getter和setter 我成功地将jquery datepicker输入检索到一个v-model组件,但并非无法按如下方式显示它: <DatePickerHelper :value="componentGetObject['## startDate ##']" :signal="triggerSignal" pro="## startDate ##" ><
<DatePickerHelper :value="componentGetObject['## startDate ##']"
:signal="triggerSignal" pro="## startDate ##" ></DatePickerHelper>
我应该像在销毁之前一样在挂载的和上应用它吗
这是来自的后续报告,供您参考 我觉得你没有按照vue的方式来做
什么是代理值?为什么它包含道具?道具应在组件中,而不是在计算中
要使用vue创建jquery日期选择器,必须执行以下操作:
创建一个组件日期选择器
在使用jquery datepicker html的组件内创建一个模板
函数的作用是:侦听日期选择器的jquery更改事件
在“更改”中,向父级发出输入事件,如下所示:
这是。$emit('input',value)
当您使用该组件时,将创建一个v型模型,并在数据更改时自动更新该模型。。。(由于输入触发事件)
你想怎么做就怎么做
希望这些信息能对您有所帮助。奇怪的是,jquery不希望收到jquery(this.$el)
,所以解决方案是这样的:
computed: {
proxyValue: {
get() { return this.value; }
}
},
mounted:function(){
var self = this;
jquery('#dateInput')
.datepicker({
dateFormat: 'yy-mm-dd',
onSelect: function(newValue) {
self.signal({pro: self.pro, val: newValue});
}
});
}
使用设置
功能完全内置安装
感谢您的回复,原因是proxyValue
和道具
是因为我使用的是Vuex和组件。无论如何,我已经把它整理好了,以防有人对我的答案感兴趣。编辑:是的,你是对的,我把道具放错地方了,已经在片段中修复了,再次感谢。
<template>
<div>
<input v-model.lazy="proxyValue" />
</div>
</template>
props: ['value', 'signal', 'pro' ],
computed: {
proxyValue: {
get() { return this.value; },
set(newValue) {
var self = this;
jquery(this.$el).datepicker({
onSelect: function(newValue) {
self.signal({pro: self.pro, val: newValue});
}
});
}
}
},
computed: {
proxyValue: {
get() { return this.value; }
}
},
mounted:function(){
var self = this;
jquery('#dateInput')
.datepicker({
dateFormat: 'yy-mm-dd',
onSelect: function(newValue) {
self.signal({pro: self.pro, val: newValue});
}
});
}