首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修复Flatpickr重新创建

如何修复Flatpickr重新创建
EN

Stack Overflow用户
提问于 2017-07-17 11:21:22
回答 1查看 309关注 0票数 0

我在angular 1.5.0,es6环境下使用了flatpickr,flatpickr的版本是3.0.6,我绑定了一个输入事件来打开flatpickr,当日历打开时,它会立即关闭,但当我使用触摸板点击输入时,而不是点击,它工作得很好。有什么问题吗?

我尝试使用jQuery绑定事件,结果是一样的。我的操作系统是Mac。

我的片段:

代码语言:javascript
运行
复制
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()"
>

我在官方问题上问过,维护者说这不是插件本身的问题。

我怎么才能修复它呢?

EN

回答 1

Stack Overflow用户

发布于 2017-07-20 23:44:56

我解决了它,这个问题是因为重新创建了无限次,我是这样解决的:

代码语言:javascript
运行
复制
$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)
//   }
// })
}

我创建了一个缓存数组来创建单个实例,它工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45135502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档