如何在没有 formControlName 的情况下将输入从 angular 表单传递给 api?

how to pass input to api from angular forms without formControlName?

我正在将一些数据从angular传递给django rest api,如下

首先 django 需要什么 api:

notice
    {
      description: something,
      classname : in which class notice is provided,
      students : from dropdown
    }

我传递的是angular

description by formController
students by formcontroller

现在我的问题是我没有将类名作为输入,因为它在这里没有意义

所以有没有其他方法可以直接将类名作为输入传递给 api 而无需在 UI

上显示

我的angular代码:

this.announceForm = this._formBuilder.group({
  students   : [selectedStudents, Validators.required],
  description: ['', Validators.required]
});

这里是 django 的输入字段

当然可以。表单的值只是一个对象。您可以将所需的值硬编码为表单组的一部分,也可以将其添加到传递给服务的值中。

仅仅因为您向表单组添加了一个值并不意味着您必须将它呈现给用户。

使用硬编码值的示例:

this.form = this.formBuilder.group({
  students: [
   '', [ Validators.required ]
  ],
  classname: [
    'some value'
  ],
  description: [
    '', [ Validators.required ]
  ],
});

或稍后添加值:

this.form = this.formBuilder.group({
  students: [
   '', [ Validators.required ]
  ],
  description: [
    '', [ Validators.required ]
  ],
});

const data = {
  ...this.form.value,
  classname: 'whatever',
};

this.yourService.whatever(data);

我通常只是将值硬编码到表单组中,这样我就可以将 form.value 传递给服务方法。