我可以将对象发送到被动表单吗?

arf*_*fis 4 angular2-forms angular

我想问一下是否有可能将整个物体发送到角度2的反应形式.

这是我的表格:

this.parameterForm = this.fb.group({

  'name': ['', Validators.required],
  'description': "",
  'parameterType':''
});
Run Code Online (Sandbox Code Playgroud)

第三个属性(parameterType)应该是一个对象.(名称和描述只是简单的字符串.

我对parameterType的HTML是(formControlName用于映射它):

<label for="parameterType">Parameter Type</label>
<select id="parameterType" class="form-control" formControlName="parameterType">
  <option *ngFor="let parameterType of parameterTypes" [value]="parameterType">
    {{parameterType.name}}
  </option>

</select>
Run Code Online (Sandbox Code Playgroud)

select中的值是对象(在别处创建).提交表单时,我想拥有parameterType对象.提交尝试将表单解析为名为Parameter的对象:

export class Parameter {

  public id: number;
  public name: string;
  public description: string;

  public parameterType? : ParameterType
} 
Run Code Online (Sandbox Code Playgroud)

但是当我试图在控制台中读取结果时,parameterType只包含一个字符串"[Object object]",看起来像parameterType只是一个String,并且在提交表单时,该对象被转换为一个简单的字符串.

我的提交功能是这样的:

  onSubmit( {parameter}:{parameter: Parameter} ) {
    console.log(parameter);
  }
Run Code Online (Sandbox Code Playgroud)

现在我只是这样做,在参数类型我发送id和通过服务我得到对象,但这个解决方案不是很好.你知道我可以将对象传递给表单吗?

谢谢

Ami*_*mit 8

我认为你需要使用[ngValue]而不是[value].