[英]Why Apply Button does not Work in Ag-grid Filter (agSetColumnFilter)?
[英]How does this big arrow notation work with ag-Grid value formatter?
我在 angular 項目中創建了一個服務GridFormatterService
,其中包含 static 方法,用於 ag-Grid 中的值格式化。
在項目中的一些 ag-Grids 中,我需要將列定義valueFormatter
中的參數displayDateAndTime
(一個 boolean 標志)傳遞給我的服務,以決定值的格式設置方式。
以正常方式執行此操作,例如 -
public columnDefs = {
... , valueFormatter: GridFormatterService.dateFormatter(params, displayDateAndTime), ...
}
不起作用。 我在這里找到了解決這個問題的答案,所以我在dateFormatter
中實現了它,如下所示:
public static dateFormatter(displayDateAndTime: boolean = false) {
return (params: ValueFormatterParams) => {
if (params.value) {
if (!displayDateAndTime) {
return new Date(params.value).toLocaleDateString('en-GB');
} else {
return moment(params.value).format('DD/MM/YYYY HH:mm');
}
}
}
}
但是這個實現只有在傳入了displayDateAndTime
參數的情況下才有效。只有在某些情況下才需要傳入該參數,而當你不傳入參數時(即使你設置了默認值或者允許它為null),它會破壞dateFormatter
並導致代碼作為字符串顯示在 ag-Grid 中。 在這種情況下,我在網格中看到的是params => if (params.value)...
我的問題有兩個:
params
,即使它沒有傳遞給 function?dateFormatter
為我的標志設置默認值,如果不能,是否還有另一種將參數傳遞給我缺少的valueFormatter
的方法?謝謝你的幫助!
我就是這樣做的。 對其進行了測試,並且有效。
columnDefs = [
...
{
field: 'someField',
valueFormatter: (params: ValueFormatterParams) =>
GridFormatterService.dateFormatter(params, true),
},
{
field: 'otherField',
valueFormatter: (params: ValueFormatterParams) =>
GridFormatterService.dateFormatter(params),
},
...
]
這是下面的服務。 請注意告訴typescript一個屬性可能存在也可能不存在,你必須使用問號。
即函數(a:參數,b?:布爾值)
class GridFormatterService {
...
public static dateFormatter(
params: ValueFormatterParams,
displayDateAndTime?: boolean
) {
if (params.value) {
if (!displayDateAndTime) {
return 'Format A';
} else {
return 'Format B';
}
}
}
...
}
這是一個工作示例的鏈接: https://stackblitz.com/edit/angular-ag-grid-formatter?file=src%2Fapp%2Fapp.component.ts
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.