如何修复关于Flatpickr重新创建

问题描述:

我使用flatpickr与角度1.5.0,es6 env,flatpickr版本是3.0.6,我绑定了一个输入事件以打开flatpickr,当日历打开时,它立即关闭,但是当我点击使用触摸板的输入,而不是点击,它运作良好。问题是什么?如何修复关于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()" 
> 

我要求在正式发布,维护者说不是插件自身的问题。

我该如何解决这个问题?

我解决了这个问题,这个问题是因为recreateing无限次的,我通过这种方式解决:

$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) 
// } 
// }) 
} 

我创建了一个高速缓存阵列以创建单个实例,它工作得很好。