2

我有一个反应形式。我有一个带有 Mat-Select 的输入,用户必须从国家列表中选择一个选项。每个国家都是一个具有名称、首都和人口属性的对象。

选择国家时,Object 存储为 SelectedCountry,同一个 Form 中的其他 Inputs(资本输入和人口输入)必须自动填写。

我可以使用 NgModel 轻松完成,如下所示:

<mat-form-field appearance="outline">
        <mat-label>Country Capital</mat-label>
        <input formControlName="country_capital" matInput placeholder="Country capital" [(ngModel)]="selectedCountry.capital">
    </mat-form-field>

所以输入结果是,例如,如果你选择美国,“华盛顿”。

但是 Angular 显示了这个警告:

看起来您在与 formControlName 相同的表单字段上使用 ngModel。Angular v6 中已弃用对使用 ngModel 输入属性和 ngModelChange 事件和响应式表单指令的支持,并将在未来版本的 Angular 中删除。

我的问题是,在没有 ngModel 的情况下,做同样事情的正确和当前方法是什么?

4

1 回答 1

1

如果您使用的是响应式表单,则可以使用可用于初始化表单的方法。在这种情况下,您需要的可能是patchValue 或setValue。

如果你使用模板表单,你就会让我们成为 ngModel。

链接到角度文档

于 2022-02-21T01:18:55.533 回答