我在angular 1.5.0,es6环境下使用了flatpickr,flatpickr的版本是3.0.6,我绑定了一个输入事件来打开flatpickr,当日历打开时,它会立即关闭,但当我使用触摸板点击输入时,而不是点击,它工作得很好。有什么问题吗?
我尝试使用jQuery绑定事件,结果是一样的。我的操作系统是Mac。
我的片段:
import flatpickr from 'flatpickr'
$scope.showPicker = function() {
flatpickr(document.getElementById('date-input'), {
locale: zh.zh,
onChange: function(selectedDates, dateStr) {
$scope.currDay = dateStr
$scope.reqDetail($stateParams.gid, dateStr)
}
})
}
<input
ng-model="currDay"
readonly="readonly"
id="date-input"
ng-click="showPicker()"
>我在官方问题上问过,维护者说这不是插件本身的问题。
我怎么才能修复它呢?
发布于 2017-07-20 23:44:56
我解决了它,这个问题是因为重新创建了无限次,我是这样解决的:
$scope.fpCache = []
$scope.showPicker = function() {
if($scope.fpCache.length == 0) {
const fp = new Flatpickr(document.getElementById('date-input'), {
locale: zh.zh,
onChange: function(selectedDates, dateStr) {
$scope.currDay = dateStr
$scope.searchByDate(dateStr)
}
})
fp.open()
$scope.fpCache.push(fp)
} else {
$scope.fpCache[0].open()
}
// $('#date-input').flatpickr({})
// flatpickr(document.getElementById('date-input'), {
// locale: zh.zh,
// onChange: function(selectedDates, dateStr) {
// $scope.currDay = dateStr
// $scope.searchByDate(dateStr)
// }
// })
}我创建了一个缓存数组来创建单个实例,它工作得很好。
https://stackoverflow.com/questions/45135502
复制相似问题