在使用数据表列的计算函数内部的Ember Controller中使用Moment.js

时间:2019-04-18 00:22:23

标签: date ember.js datatable momentjs ember-cli

非常感谢您的帮助。 我想知道是否可以应用

的日期格式
  

MM-DD-YYYY

到Ember路由的控制器内数据表列数组的valuePath。

我的def escape_ansi(line): ansi_escape = re.compile(r'(\x9B|\x1B\[)[0-?]*[ -/]*[@-~]') return ansi_escape.sub('', str(line))

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}} dateOfBirth valuePath 转换为(MMDDYYYY)的日期格式。任何想法都会很有帮助。

P.S。 我尝试了moment.js,但没有成功。

谢谢!

1 个答案:

答案 0 :(得分:2)

理想情况下,每列的配置中都会有一个“格式”属性,因此您可以定义格式方法。

另一种方法是,由于表将在模型中查询'valuePath'属性,因此您可以在模型中直接进行计算以返回格式化日期。

models / user.js

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

p.d .:我不确定您使用的是哪个表插件。如果您可以将其张贴在这里,我可以深入阅读文档。