2017-07-17 1 views
0

Ich habe flatpickr mit eckigen 1.5.0, es6 env, flatpickr Version ist 3.0.6, ich binge eine Eingabe Ereignisse zu öffnen flatpickr, wenn der Kalender geöffnet ist, schließt es sofort, aber wenn ich tippen Sie auf den Eingang mit Touchpad, nicht klicken, es funktioniert gut. Was ist das Problem?Wie repariere ich über Flatpickr neu erstellen

Ich versuchte mit jQuery das Ereignis zu binden, und das Ergebnis ist das gleiche. Mein Betriebssystem ist Mac.

Mein Fragment:

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()" 
> 

ich in der offiziellen Ausgabe gefragt wurde, sagte der Betreuer es nicht das Problem des Plugin selbst ist.

Wie kann ich das beheben?

Antwort

0

ich es gelöst, das Problem wegen recreateing unendlich mal war, und ich auf diese Weise gelöst:

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

ich eine Cache-Matrix erstellt, die einzelne Instanz zu erstellen, es funktioniert gut.

Verwandte Themen