Angular 2:在界面中创建对象

时间:2017-05-29 10:30:19

标签: angular typescript angular2-forms

我正在尝试创建嵌套对象,如下所示

myForm value: 
{
  "name": {
         "firstname":"abc",
         "lastname":"xyz"
   },
  "address": {
    "street": "assdasdasdsa",
    "postcode": "8000"
  }
}

在界面中,可以选择指定字符串,数字,数组类型语法

我尝试了下面的选项,但没有运气,它正在抛出错误"错误错误:无法找到名称控制:" (SO和其他人的解决方法没有帮助)

export interface Customer {
    name: {
    firstname: string;
    lastname: string;
};
    addresses: Address[];
}

export interface Address {
    street: string;
    postcode: string;
}

请您提供指定上述对象的选项吗?

Plunker- https://embed.plnkr.co/hQ6RtzCfPosfQl4HlbZQ/

在Angular 1中,使用范围对象并使用ng-model作为" myForm.name.firstname"

Codepen尝试在angular1 - https://codepen.io/nagasai/pen/mmYgbr中尝试以角度2

复制相同的内容

1 个答案:

答案 0 :(得分:2)

您的TS中有一个表单组name,其中包含表单控件firstnamelastname。您忘记在模板中应用它。因此,您需要使用formGroupName包装表单控件:

<div formGroupName="name"> <!-- Here -->
  <div class="form-group">
    <label>Name</label>
    <input type="text" class="form-control" formControlName="firstname">
    <input type="text" class="form-control" formControlName="lastname">
 </div>

<强> Forked Plunker