1.2.8
Mac And Windows
2.2.2
https://jsfiddle.net/ho0vppo7/
默认时间初始化禁用小于2017-04-12的时间,点击更新时间后把警用时间改成小于2017-04-18时间,但再次选择默认时间时还是禁用小于2017-04-12的时间,应该禁用小于2017-04-18的时间
禁用时间是可以动态设置的
不能动态设置禁用时间
改成这样
var pre_cDate = new Date('2017-04-12');
var Main = {
data() {
return {
cDate: pre_cDate,
pickerOptions1: {
shortcuts: [{
text: '今天',
onClick(picker) {
picker.$emit('pick', new Date());
}
}, {
text: '昨天',
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24);
picker.$emit('pick', date);
}
}, {
text: '一周前',
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', date);
}
}]
},
value1: '',
value2: '',
};
},
computed: {
pickerOptions0: function () {
return {
disabledDate(time) {
console.log('1');
return time.getTime() < this.cDate - 8.64e7;
}
}
}
},
methods: {
updateDate: function () {
this.cDate = new Date('2017-04-18');
}
}
};
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
@liyangworld 思路很对,但是这样写仍然是有问题的,返回的disabledDate
函数中的 this
仍然是子组件的this
;因此需要首先把值计算出来;代码如下:
...
pickerOptions0: function () {
const dateFlag = this.cDate;
return {
disabledDate(time) {
console.log('1');
return time.getTime() < dateFlag - 8.64e7;
}
}
}
...
@jinglf000 这个disabledDate只有在日期发生改变的时候才会触发,如果值没有发生改变的话,不被触发,请问有没有一种方法可以是点击input框的时候触发disabledDate呢?thanks
已解决
Most helpful comment
已解决