0

我正在尝试通过ngx-formly制作 datetimepicker

在我阅读了官方文档中的所有示例之后,我仍然不知道如何制作它。

是否有任何自定义表单字段或内置日期时间选择器?

4

2 回答 2

1

自定义字段类型的文档https://formly.dev/guide/custom-formly-field,这里总结一下所需的步骤:

  1. 使用 name创建自定义字段类型datetimepicker
import { Component } from '@angular/core';
import { FieldType } from '@ngx-formly/core';

@Component({
 selector: 'formly-datetimepicker',
 template: `
   <datetimepicker [formControl]="formControl"></datetimepicker>
 `,
})
export class DatetimepickerFieldType extends FieldType {}
  1. NgModule通过声明定义您的字段类型:
@NgModule({
 declarations: [DatetimepickerFieldType],
 imports: [
   ....
   FormlyModule.forRoot({
     types: [
       { name: 'datetimepicker', component: DatetimepickerFieldType },
     ],
   }),
 ],
})
export class AppModule {}
  1. type在您的字段配置中设置类型:
fields = [
  {
    key: 'datetimepicker',
    type: 'datetimepicker',
  },
]

仍然困惑检查正式的 UI 源代码https://github.com/ngx-formly/ngx-formly/tree/master/src/ui

于 2020-03-03T13:48:15.230 回答
0

如果您不介意依赖浏览器的内置日期和时间选择器,您可以将常规 Formly 字段设置templateOptions.typedatetime-local(或datetime,如果您只需要其中一个),这将传递给 html<input>元素. 无需自定义字段!虽然显然你对用户体验的控制比你自己制作日期时间选择器要少。

Mozilla 有关于datetime-local类型以及日期和时间的用法、浏览器兼容性等的详细信息。

于 2021-03-04T21:52:52.980 回答