【问题标题】:How to format an Angular Reactive Form Control value如何格式化 Angular Reactive Form Control 值
【发布时间】:2021-04-09 16:49:05
【问题描述】:

如果我有一个如下所示的 Angular 表单控件,那么推荐的格式化值的方法是什么?

例如我可以从数据库返回一个包含秒和毫秒等的日期字段。如何格式化这是与日期管道类似的方式,所以我只显示日、月、年等?

<input type="text" [formControl]="date">

我的打字稿文件如下:

export class MyForm {

   form: FormGroup;

   ngOnInit(): void {
     this.setupForm();

     this.httpService.get(5).subscribe((response) => {
       this.form.patchValue(response);
     });
   }

   setupForm(): void {
     this.form = new FormGroup({
       date: new FormControl('')
     });
   }
}

【问题讨论】:

    标签: angular angular-reactive-forms


    【解决方案1】:

    您需要在创建控件并在 FormGroup 中分配值时格式化值:

    const form = new FormGroup({
      date: new FormControl(datePipe.transform(yourData.date, yourFormat)),
    });
    

    如果您需要从服务调用中填充您的值,您可以在服务调用完成后实例化表单:

    ngOnInit(): void {
      this.httpService.get(5).subscribe((response) => {
        if (response) {
          this.setupForm(response);
        }
      });
    }
    
    setupForm(data): void {
      this.form = new FormGroup({
        date: new FormControl(datePipe.transform(data.date, yourFormat)),
      });
    }
    

    【讨论】:

    • 感谢您的回复。当记录从数据库返回时,这将如何工作?我已经扩展了我的例子。谢谢。
    • 您希望在服务调用完成后 实例化您的表单。如果你在其他地方使用数据,你可以在你的类上设置一个视图模型属性,或者你可以将数据作为参数传递给setupForm(data)
    • 无需实例化表单,然后修补值。只需进行 HTTP 调用,然后在获取数据后实例化表单就会容易得多。
    • 太好了。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 2018-06-10
    • 2021-06-04
    • 2018-03-09
    • 1970-01-01
    相关资源
    最近更新 更多