angular - 如果我更改它们,我只能从表单中获取值
问题描述
我有这个表格:
<div class="form-group modal-body">
<form [formGroup]="mediadorForm" #form>
<input type="hidden" name="angcod" id="angcod" formControlName="angcod" class="form-control" [(value)]="mediador.angcod" #angcod>
<input type="text" name="angnom" id="angnom" formControlName="angnom" class="form-control" placeholder="Nombre del mediador" [(value)]="mediador.angnom" #angnom required>
<div class="row mt-3">
<div class="col-5 pt-1">Factura comisiones</div>
<div class="col-7">
<select class="form-control" name="angfac" id="angfac" formControlName="angfac" #angfac>
<option [(value)]="sn.desres" *ngFor="let sn of sino" [selected]="sn.desres === mediador.angfac">{{ sn.desnom }}</option>
</select>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success" (click)="enviaForm(mediadorForm); editMediadorModal.close();">- Guardar cambios -</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal" (click)="editMediadorModal.close();">Cancelar</button>
</div>
然后在组件上:
export class MediadorComponent implements DoCheck, OnInit {
mediadorForm: FormGroup;
mediador: Mediador;
constructor(private fb: FormBuilder) {
}
ngOnInit() {
this.mediadorForm = this.fb.group({
angcod: '',
angnom: '',
angfac: ''
});
}
ngDoCheck() {
this.mediador = this.mediadorService.mediador;
}
enviaForm(form: any) {
console.log(form.value);
}
}
表单将其值加载到字段中,但如果我发送它,控制台日志输出
Object { angcod: "", angnom: "", angfac: "" }
如果我什么都不改变。如果我将 angnom 的值从“John Doe”更改为“Barak Obama”,它会输出:
Object { angcod: "", angnom: "Barak Obama", angfac: "" }
但未更改的值为空。
我究竟做错了什么?
解决方案
将值分配给表单的最佳方法是
this.mediadorForm = this.fb.group({ angcod: 'mediador.angcod',
angnom: 'mediador.angnom',
angfac: 'mediador.angfac' });
推荐阅读
- git - 从标签推送 gitlab-ci 中获取“创建自”分支名称
- css - 使用一些组件我看到定义的索引类
- javascript - 如何在本机反应中导入其他文件夹中存在的图像?
- c# - Visual Studio - 模板 - 没有可用于 Visual C# 的项目
- r - 无法在 R 中安装 tensorflow,我的机器是 64 位但 R 没有检测到它
- c# - Asp .Net Core 3.0 在测试中添加自定义 Startup 类会导致不再提供视图
- javascript - 我如何从反应中读取和写入 Firestore 中的地图的值?
- python - How would I work around this invalid literal for int() with base 10 error?
- bash - bash中的下划线变量后跟范围是什么意思:$_{0..10}
- linux - Bash 命令替换失败