簡體   English   中英

這個大箭頭符號如何與 ag-Grid 值格式化程序一起使用?

[英]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)...

我的問題有兩個:

  1. 這個大箭頭符號如何允許 function 從 ag-Grid 訪問params ,即使它沒有傳遞給 function?
  2. 如何在不破壞 ag-Grid 的情況下允許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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM