我必须说我对Web上有关RC5 Angular表单的不同教程感到困惑。官方文件也没有消除混淆。
丰富的指令(ngForm,ngModel,ngFormControl,ngControl,ngFormControlName,ngControlName,我错过了什么吗?)有些已被弃用,有些则不予批准。
另外,所有教程都是简单的路径 - 纯文本输入或选择控件。如果我需要单选按钮和复选框?
简而言之,我不知道如何在RC5中编写表格。
是否有某个例子,这是最新的并解释:
P.S。
我读到了什么?
我可能很蠢,但我仍然不知道在RC5中写表单的正确方法是什么。
答案 0 :(得分:1)
我发现对于angular2形式非常困惑的是,有两种完全不同的构建它们的方式,这两种方式不能很好地混合。你有"模板驱动",其中表格在html中尽可能地构建和处理,然后你有"模型驱动"表单在组件方面处理的地方。
我发现的不同类型的最佳描述是此视频,其中Kara Erickson对两者进行了演示。她在10-11分钟左右很好地解释了这些差异:
https://www.youtube.com/watch?v=E92KS_YCSf8
简而言之:
模板驱动表单
如果您想在模板html中进行所有表单处理(绑定,验证等),请使用以下指令:
模型驱动形式(也称为反应形式)
如果您希望获得更好的控制,更好的可测试性,自定义验证器等,请使用以下控件在组件中手动生成表单:
FormBuilder
来减少某些样板 然后使用以下指令将html form
和input
元素绑定到这些控件:
编辑2016-09-02: 官方文档中现在有一本很好的食谱,很好地报道了模板/反应形式之间的差异: https://angular.io/docs/ts/latest/cookbook/form-validation.html
答案 1 :(得分:-1)
我喜欢FormBuilder,因为大部分代码都在ts而不是html中,所以有更好的编译时错误检查。 This page from the Angular2 documentation has a simple example。
PrimeNG有一些很棒的控件使用FormBuilder
另外,我有一些code here可能有助于说明有效/无效