angularjs - 无法使用没有验证标签的 Angular Moment Picker 设置初始自定义日期
问题描述
我正在使用 Angular Moment Picker 库并尝试在输入字段中设置自定义日期,同时还试图阻止用户选择过去的日期。
我的元素看起来像这样:
<input class="form-control"
moment-picker="endTimePicker"
name="campaignEndDate"
locale="en"
format="MMMM Do YYYY, h:mm A"
today="true"
start-view="month"
min-date="minDate"
ng-model="endTime"
ng-model-options="{ updateOn: 'blur' }"
ng-required="!campaign.NeverEnds"
style="width: 60%;"/>
我的控制器:
$scope.minDate = moment();
$scope.endTime = moment( $scope.campaign.EndTime );
当我打开表单时,Angular Moment Picker 在输入字段中显示今天的日期/时间,即使$scope.endTime
显示的是过去的日期。
我似乎可以在输入字段中显示正确日期的唯一方法是validate="false"
在元素上设置,但是控件没有通过验证,因为日期是过去的日期。
我想要实现的是(2020-07-29 02:14:00)
在用户打开表单时显示初始日期,但如果他们尝试更改endTime
,则无法选择过去的新日期。
这是否可以以某种方式实现?
解决方案
好的,在玩了更多之后,并回顾了文档,我发现实现我想要的最佳方法是实现一个selectable
方法:
我删除了min-date="minDate"
允许 Moment Picker 然后在输入字段中显示正确日期的选项,然后将 a 添加selectable="isSelectable( date )"
到元素中以过滤并禁用任何前几天:
$scope.isSelectable = function( date ) {
// Disable all previous days
return date >= moment();
};
推荐阅读
- django - dockerized django 项目中的芹菜
- apache-spark-sql - Spark SQL 可以在 GROUP BY 聚合中使用 FIRST_VALUE 和 LAST_VALUE(但这不是标准的)
- c# - OleDbCommand 使用错误的路径
- php - cURL 快速流式传输图像的方法
- java - Java 正则表达式组合负正则表达式
- webpack - 按顺序执行 Webpack 打包程序
- typo3 - 从 TYPO3 7.6.X 升级到 8.7.XI 后无法将更改从 rte 编辑器保存到数据库
- nsis - NSIS 不可见的标题文本
- jenkins - 在 Jenkins 管道中的所有下游作业上使用相同的节点
- swift - 两个没有 segue 的 VC 之间的 Swift 委托