Angular 占位符上的setValue出现问题

Angular 占位符上的setValue出现问题,angular,typescript,Angular,Typescript,当一个人写年龄时,我将这个值作为日期发送(API就是这样构建的)。 我使用setValue设置表单值,当您提交表单时,它也会更改输入占位符,我不希望这样。 我希望占位符不要更改。 我做错了什么 这是我的 .ts onSubmit() { const birthDateValue = (this.formGroup.get("formArray") as FormArray) .at(0) .get("birthDate"

当一个人写年龄时,我将这个值作为日期发送(API就是这样构建的)。 我使用setValue设置表单值,当您提交表单时,它也会更改输入占位符,我不希望这样。 我希望占位符不要更改。 我做错了什么

这是我的

.ts

  onSubmit() {
    const birthDateValue = (this.formGroup.get("formArray") as FormArray)
      .at(0)
      .get("birthDate").value;
    const birthDateValueControl = (this.formGroup.get("formArray") as FormArray)
      .at(0)
      .get("birthDate");
    const date = new Date();
    const year = date.getFullYear() - birthDateValue;
    date.setFullYear(year);
    birthDateValueControl.setValue(date.toISOString());

    console.log(date.toISOString());
    console.log(this.formGroup.value);
  }

占位符在您提供的示例中没有更改,但是我猜您想重置表单吗? 我认为它是这样的。formGroup.get(“formArray”).reset()-这样,您将返回占位符,即单词“Age”。

行 birthDateValueControl.setValue(date.toISOString())

他对这种行为负责。如果没有必要,请将其删除

---回应 好的,按如下方式编辑onSubmit()方法:


onSubmit() {
    const birthDateValue = (this.formGroup.get("formArray") as FormArray)
      .at(0)
      .get("birthDate").value;
    const birthDateValueControl = (this.formGroup.get("formArray") as FormArray)
      .at(0)
      .get("birthDate");
    // send age as date
    const date = new Date();
    const year = date.getFullYear() - birthDateValue;
    date.setFullYear(year);
    const finalDate = date.toISOString();

    console.log(date.toISOString());
    console.log(this.formGroup.value);
    const formArrayData = this.formGroup.get("formArray").value;
    const data = {birthDate: "1998-04-26T12:54:33.629Z"};
    console.log(data);
    // this.service.calculate(data).subscribe(
    //   (res:any)=>{
    //     console.log(res);
    //   },
    //   err => {
    //     console.log(err);
    //   }
    // );
    // }
  }

您好,当您键入年龄并提交表格时,它会发生变化。我希望用户类型保持不变,但我希望发送给Aphi的转换日期我正在将转换后的值发送给API,这就是为什么有必要。当您键入年龄并提交表单时,它会更改占位符。我想要用户类型保留的年龄,但要将转换后的日期发送到apiOk,请按如下方式编辑onSubmit()方法: