在使用数据-table 列的计算函数内使用 Ember 控制器中的 Moment.js

Using Moment.js in Ember Controller inside a computed function using data-table columns

我想知道是否可以应用 MM-DD-YYYY 的日期格式 到 Ember 路由的控制器中 Data-Table 列数组的 valuePath

我的controller.js:

columns: computed(function() {
    return A([{
            valuePath: 'firstName',
            label: get(this, 'i18n').t('page.firstName'),
            cellClassNames: 'cell-valign-middle',
            sortable: true,
        }, {
            valuePath: "lastName",
            label: get(this, 'i18n').t('page.lastName'),
            cellClassNames: 'cell-valign-middle',
            sortable: true,
        }, {
            valuePath: "dateOfBirth",
            label: get(this, 'i18n').t('page.dateOfBirth'),
            cellClassNames: 'cell-valign-middle',
            sortable: false,
        },
    ]);
}),

template.hbs

{{#data-table 
  columns=columns 
  models=model 
  sort=sort 
  isLoading=isLoadingModels 
  responsive=true}}
{{/data-table}}

我的目标是使用 moment.js.

dateOfBirthvaluePath 转换为 MMDDYYYY 的日期格式

我试过moment("dateOfBirth").format("MMDDYYYY")没有成功。

理想情况下,每个列的配置中会有一个'format'属性,这样你就可以定义一个格式化方法。

另一种方法是,由于 table 将查询模型的属性 'valuePath',您可以直接在模型中计算 return 格式化日期。

models/user.js

 formatted: Ember.computed('dateOfBirth', function () {
    const dateOfBirth = this.get('dateOfBirth');
    return moment(dateOfBirth).format('MMDDYYYY')
  })

p.d.: 我不确定您使用的 table 是哪个插件。如果你可以 post 在这里,我可以深入研究文档。