Javascript 角度4-包含多个组件的表单-提交数据

Javascript 角度4-包含多个组件的表单-提交数据,javascript,angular,angular4-forms,Javascript,Angular,Angular4 Forms,我是新手 我有一个包含3个部分的页面。这些部分被创建为单独的表单 第1节-基本信息 first name last name email address city state zip Order id Item name quantity 第2节-联系信息 first name last name email address city state zip Order id Item name quantity 第3节-订单信息 first name last name email

我是新手

我有一个包含3个部分的页面。这些部分被创建为单独的表单

第1节-基本信息

first name
last name
email
address
city
state
zip
Order id
Item name
quantity 
第2节-联系信息

first name
last name
email
address
city
state
zip
Order id
Item name
quantity 
第3节-订单信息

first name
last name
email
address
city
state
zip
Order id
Item name
quantity 
这些部分分为不同的组件-基本组件、ContactInfoComponent、OrderInfoComponent


如何通过单击一个按钮提交所有这些组件数据?

有不同的方法。您可以在以下位置查看有关组件交互的角度文档: 在您的情况下,一种简单的方法是使用ViewChild

 @ViewChild(BasicInfoComponent)
  private basicInfoComponent: BasicInfoComponent;
 @ViewChild(ContactInfoComponent)
  private contactComponent: ContactInfoComponent;
 @ViewChild(OrderInfoComponent)
  private orderComponent: OrderInfoComponent;

然后单击按钮,您可以访问这些子组件中的数据。

使用模型驱动表单,这可以非常容易地实现。我在中创建了一个简单的应用程序

//我们的根应用程序组件
从“@angular/core”导入{Component,NgModule,Input}
从“@angular/platform browser”导入{BrowserModule}
从'@angular/forms'导入{FormsModule,ReactiveFormsModule};
从“@angular/forms”导入{FormBuilder、FormGroup、Validators、FormArray、FormControl};
@组成部分({
选择器:“我的应用程序”,
模板:`
嵌套表单组
姓名:

表单值:{myForm.value | json} `, }) 导出类应用程序{ myForm:FormGroup 构造函数(私有fb:FormBuilder){} 恩戈尼尼特(){ this.myForm=this.fb.group({ 姓名:[''], 地址:this.fb.group({ 街道:[''], 邮编:[''] }) }) } } @组成部分({ 选择器:“应用程序子项”, 模板:` 街道:
邮编: `, }) 导出类AppChild{ @Input()地址:FormGroup; } @NGD模块({ 导入:[BrowserModule,FormsModule,ReactiveFormsModule], 声明:[App,AppChild], 引导:[应用程序] }) 导出类AppModule{}
太好了。下面是stackblitz从父组件接收到以下错误:错误:“ExpressionChangedTerithasBeenCheckedError:表达式在检查后已更改。以前的值:“ng valid:false”。当前值:“ng valid:true”