Angular2更新表单控件值

标签 angular angular2-forms

我在使用控件和选择框构建动态 angular2 表单时遇到问题, 例如这个 plunker :

    <select class="form-control" ngControl="power">
      <option *ngFor="#p of powers" [value]="p">{{p}}</option>
    </select>

你可以选择一个英雄的力量,并且控件将具有相同的值。但是,如果您按 Change Powers,所选值将为空,但控件值仍为旧值。我认为这是一个严重的问题,因为当表单显示一件事但实际上它会提交不同的东西时,这是很多错误的来源,有什么方法可以更新控件的内容吗?有 updateValue() 但您必须在所有这些情况下手动设置值。

还有一个类似的情况,当你在表单构建后更新选择框选项时,它会在选择框中显示一个选定的值,而控件值将为空,请问如何处理这个问题?

最佳答案

在 Angular 2 Final (RC5+) 中有用于更新表单值的新 API。 patchValue() API 方法支持部分表单更新,我们只需要指定部分字段:

this.form.patchValue({id: selected.id})

还有 setValue() API 方法需要一个包含所有表单字段的对象。如果缺少一个字段,我们将得到一个错误。

关于Angular2更新表单控件值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35579302/

相关文章:

angular - 在 Angular 2 Reactive Forms 上执行跨域验证

javascript - 创建没有 Angular ui 路由器的多步表单

angular - 如何在 ANGULAR 2 中提交表单时重置表单验证

javascript - 在模板 Angular 2中显示JSON对象

linux - WebStorm 找不到文件,在终端打开 WebStorm

html - Bootstrap 通知不起作用

javascript - 如何在 ng-2 Material <md-input> 字段中 trim 输入开头的空格

javascript - Angular2 错误 - 是否包含平台模块 (BrowserModule)?

angular - 如何在 Ionic 3 的 app.module 中获取当前事件选项卡名称

javascript - Angular 2 : why no empty element tags?