angular - 使用 es5 中的扩展的 ng-bootstrap datepicker 自定义日期适配器
问题描述
我意识到这不是 ng-boostrap 的问题,但我一直在寻找答案,但没有找到任何对我有帮助或有意义的东西,因为我认为这是一个常见问题。我想我会在这里问,希望有人以前遇到过这个问题。
要格式化 ngb 日期文档状态,您应该创建一个自定义日期选择器适配器,该适配器扩展 NgbDateAdapter 和 NgbDateParserFormatter 类。
这是我的:
import { Injectable} from '@angular/core';
import { NgbDateAdapter, NgbDateParserFormatter, NgbDateStruct} from '@ng-bootstrap/ng-bootstrap';
import * as moment from 'moment';
@Injectable()
export class CustomAdapter extends NgbDateAdapter<moment.Moment | string> {
readonly DELIMITER = '-';
fromModel(date: moment.Moment | string): NgbDateStruct {
if (!date) {
return null;
}
if (!moment.isMoment(date)) {
date = moment(date);
}
return {
year: date.year(),
month: date.month() + 1,
day: date.date(),
};
}
toModel(date: NgbDateStruct): moment.Moment {
if (!date) {
return null;
}
return moment(`${date.year}-${date.month}-${date.day}`, 'YYYY-MM-DD');
}
}
@Injectable()
export class CustomDateParserFormatter extends NgbDateParserFormatter {
parse(value: string): NgbDateStruct {
if (value) {
const date = moment(new Date(value), "YYYY-MM-DD");
return { day: date.date(), month: date.add(1, 'M').month(), year: date.year() };
}
return null;
}
format(value: NgbDateStruct): string {
if (!value) {
return '';
}
const date = moment([value.year, value.month - 1, value.day]);
return date.isValid() ? date.format('MMM D, YYYY') : '';
}
}
在我的 tsconfig 我有
"target": "es5",
但是我的日期选择器抛出了这个错误,我假设是因为我试图扩展类,即使那是文档说明要做的事情:
VM4213 angular.js:15635 TypeError:没有'new'就不能调用类构造函数NgbDateParserFormatter
如果我将 tsconfig 更改为:
"target": "es6",
它不再抛出错误,但我的应用不再支持 IE11。
我无法想象我是唯一遇到这种情况的人,但是我使用的是自定义 angular 10 构建,没有 angular-cli 所以谁知道。
任何指导将不胜感激。
解决方案
推荐阅读
- optimization - 使用 pytorch 进行边界优化
- javascript - 创建上传图片的 URL 的 Json 文件
- python-3.x - 修改 QWeb 报告中的货币字符串(值)
- azure-synapse - Azure Synapse Notebook 从 Onprem 中提取数据?
- c++ - 为什么我们不能在 C++ 中转发声明具有已知大小的类/结构?
- python - 我打开了许多 csv 文件,现在我需要将这些文件的名称添加到
- server - 处理因批处理请求错误而导致 ID 为空的 JSON-RPC 响应的最佳实践是什么?
- sonarqube - 有人知道为什么会这样吗??我运行了“mvn compile”,然后从 sonarqube 运行命令
- typescript - 具有动态属性的类的打字稿构造函数
- r - sf::st_intersection:几乎随机的错误动作