如何将Angular 2 RC 1(或更早版本)的表单迁移到Angular 2 RC 2 / RC 4新表单

8

我需要将现有的Angular 2 RC 1应用迁移到Angular 2 RC 4。同时,我还需要将现有的表单移动到Angular 2 RC 4的新表单中。

请问有人可以指导如何将现有的表单更新为新表单吗?


验证器有什么问题吗?你能在Plunker上重现吗?你可以使用https://plnkr.co/edit/ir19tuktTqcfGeG8pu2G?p=preview作为模板。 - Günter Zöchbauer
自定义验证器要求结果中的键与验证器名称相同,当验证失败时返回 { "numeric": true }; 除此之外,您不需要自定义验证器,因为 RC1 中有 Pattern 作为标准验证器之一。 - Baumi
1个回答

19

对于那些在将表单从Angular 2 RC 1(或更早版本)迁移至Angular 2 RC 2 / RC 4新表单时遇到困难的人,以下是他们需要遵循的步骤:

通过将以下软件包添加到其packages.json中,将新表单包含在您的项目中:

"@angular/forms": "0.2.0",

接下来,他们需要在主文件中禁用过时的表格,并包含类似以下内容的新表格:

接下来,他们必须禁用主文件中已停用的表单,并包含像以下这样的新表单:

import {disableDeprecatedForms, provideForms} from '@angular/forms';
bootstrap(AppComponent, [
   disableDeprecatedForms(),
   provideForms()
])

然后在他们的组件中添加导入新表单指令的内容:

Then在他们的component add import for new form directives:

(保留原文)
import { REACTIVE_FORM_DIRECTIVES, FormControl, FormGroup, FormBuilder, Validators } from '@angular/forms';

为组件包含 REACTIVE_FORM_DIRECTIVES:

directives: [REACTIVE_FORM_DIRECTIVES],
在您的组件中将以下内容重命名:
ControlGroup > FormGroup
Control > FormControl

在你的模板中重命名以下内容:

ngFormModel > formGroup
ngControl > formControlName
我希望这能有所帮助。

2
这里有更重要的变化...请参考:https://docs.google.com/document/u/1/d/1RIezQqE4aEhBRmArIAS1mRIZtWFf6JxN_7B4meyWK0Y/pub - Baumi
谢谢Baumi,你说得对,我也确实遵循了那篇文章 :) - Naveed Ahmed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接