- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 PrimeNg 数据表中的排序/过滤日期列中遇到问题。因为我正在显示日期“dd/mm/yyyy”字符串。
最佳答案
我使用 moment.js 解决了这个问题,因为它更简单、更快速,但如果您想在没有任何框架的情况下进行,代码总是可以定制一些(我希望少一些 if 条件和字符串转换)
所以你必须将 moment.js 添加到你的项目中:a) 将 src 链接添加到您的主 html 索引文件(主 Angular 选择器、polyfills 等)从此站点 https://cdnjs.com/libraries/moment.js/b) 但如果是生产环境,我建议通过 npm 添加它。 http://momentjs.com/docs/这里还有其他可能性。
那么你必须在import语句下和@Component注解之上声明moment变量
declare var moment;
然后,如果您已经将 primeng 模块添加到您的项目中,则在 primeng 的 p-dataTable 标签内的 html 文件中有 p-column 标签,在此标签中我们需要添加 sortable="custom"和 (sortFunction)= "mysort($event)"像这样:
<p-column field="date" header="Data" sortable="custom" (sortFunction)="mysort($event)"></p-column>
使用 p 列标签显示的日期采用 DD.MM.YYYY 字符串格式,例如:03.01.2017
之后,在我们获取数据并将数据推送到数组的组件中,数组用于在表中显示数据,在我名为 appointments 的示例中,我们需要添加名为 mysort 的函数(因为我们在 html p-列标签)
mysort(event) {
let comparer = function (a, b): number {
let formatedA = moment(a.date, "DD.MM.YYYY").format('YYYY-MM-DD');
let formatedB = moment(b.date, "DD.MM.YYYY").format('YYYY-MM-DD');
let result: number = -1;
if (moment(formatedB).isBefore(formatedA, 'day')) result = 1;
return result * event.order;
};
this.appointments.sort(comparer);
}
在我的示例中,a.date 和 b.date 是一个类似于“21.12.2016”的字符串,我们需要将其格式化为 YYYY-MM-DD。然后我们只是比较日期。
仅此而已,我检查了这段代码并且它有效。我希望它能帮助别人,如果解释是用教程风格写的,请原谅,但这是我的第一个答案,我想以正确的方式来做:)
关于angular - PrimeNG DataTable 自定义排序或过滤(Angular 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41181277/
我正在尝试使用下拉菜单过滤 primeNG 表中的列,但我只想在按下“应用”按钮时应用过滤器。现在过滤发生在 onChange 事件中。如果我删除 onChange 事件,过滤器将不起作用 这是没有
需要在 primeNg 的文本框内放置一个清晰的图标。单击它应该会清除该字段。 最佳答案 对于 Primefaces 关于prim
我想在我自己的组件中包装一个 primeng 自动完成组件,但不知道如何提供 formControlName: 错误:未捕获( promise ):错误:formControlName 必须与父 fo
当我将滚动条应用到主菜单时,我遇到了子菜单被切断的问题,但我无法让子菜单显示在滚动条上方。 下面是一个简单的代码:https://stackblitz.com/edit/angular-cyvv7d
我使用 PrimeNG 创建了一个数据表。我刚刚为数据表创建了 2 个标题。我实际上会从服务器获取数据,因此如果没有数据,我不希望显示默认的“未找到记录消息”。 如果表格中没有数据,我希望表格为空。
我从 Angular 2 RC5 和 PrimeNG 1.0.0-beta.13 beta 开始。我将 PrimeNg 组件作为 xModules 加载,并且在显示数据表、输入、SelectItem、
我正在使用一个动态对话框,我想在页脚上有一些按钮,但是在这个组件中似乎只允许文本作为页脚。 const ref = this.dialogService.open(Te
我正在尝试在按钮上添加条件工具提示。使用primeng工具提示组件: 它不工作。 但是,没有“tooltipDisabled”的工具提示工作正常。 有人可以帮帮我吗? 最佳答案 使用
我想用styleClass Togglebutton 的属性(property)成分。如 another post 中所述,我认为使用以下方法很简单: styleClass="test" 在我的 cs
根据https://www.primefaces.org/primeng/#/table的文档,重置方法应为“重置排序,过滤器和分页器状态”。 问题在于,重置表方法未从UI中删除过滤器。 (尽管重置后
我已经使用 PrimeNG Table 创建了一个 Angular 应用程序。我在这里查看了 PrimeNG 文档 ( https://www.primefaces.org/primeng/#/tab
我正在使用 PrimeNg 库。它有很好的组件,默认创建可拖动的对话框。但在某些情况下,我正在使用 PrimeNg 的 API dialogService , 动态创建对话框。注意 this.dial
使用 PrimeNg 的动态对话示例展示了目标对话如何获取数据并显示。 我可以通过创建一个带有 observable 的服务来将数据传递给对话,但我知道对话服务有一些可用的参数(如数据)可以传递。 对
我在 Angular 5 中使用 PrimeNG 6.0.2,但我遇到了 的问题表插入。我切换到 Table 因为 DataTable 已被弃用。现在,我无法像以前那样访问过滤值。 假设我通过 Vie
我对 primeNG 表有疑问。表格有很多列,在列切换上,列宽在变化,表格看起来很乱。 表格可滚动和可调整大小,因此根据文档,由于技术原因不支持自动布局。 所以也许有一些解决方法,或者是否有一种方法可
在我的 Angular 项目中,我使用 primeNG 库我正在尝试使数据表中的行可编辑,所以我按照文档进行操作[ https://www.primefaces.org/primeng/#/table
抱歉菜鸟问题... 使用primeng包时,推荐的将焦点设置在控件上的方法是什么?使用传统输入控件时,我设置了一个表单变量 (#variable) 并使用 @ViewChild 获取对它的引用,以便我
我需要在 PrimeNG 数据表中显示大量数据(400.000 条记录)。为此,我需要一个延迟加载表,因为您无法一次将所有数据加载到表中(这会使浏览器崩溃)。 为了创建表,我使用了以下技术: Angu
我使用 PrimeNG 5.0.1、Angular 5.1 中的组件日历,它允许选择日期和时间: 但是 timepicker 在重新加载页面时被卡住。每次显示选择器时是否可以更新时间值? 我还没有发
在 Angular v7 项目中使用 PrimgNG v7.1.3。 在一个简单的组件中实现了多选 ( https://www.primefaces.org/primeng-7.1.3/#/multi
我是一名优秀的程序员,十分优秀!