2017-05-29 76 views
0

我想创建嵌套的对象,如下角2:接口

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; 
} 

能否请您提供选项来指定的obj没有运气,它是抛出Error“错误错误:无法与名称查找控制”如上所述?

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

在角1,很容易与范围对象并使用NG-模型为 “myForm.name.firstname”

Codepen在angular1试图 - https://codepen.io/nagasai/pen/mmYgbr和试图复制在相同angular 2

+0

Plunker工作正常? – Alex

+0

是的,Plunker url正常使用名称作为字符串,我试图改变它作为不工作的对象 –

+0

以及为'Name'创建一个新接口:export interface Name {firstname:string; lastname:string}'address:'export interface地址{street:string; postcode:string;}'和customer:'export interface Customer {name:Name; addresses:Address []}' – Alex

回答

1

您的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

+0

谢谢AJT,它的效果很棒.... :)不知道该downvote :)对于这个问题:( –

+0

很高兴听到它解决了!好吧,你从我得到upvote; P有一个愉快的一天/晚上/晚上和快乐的编码!:) – Alex

+1

非常感谢AJT :) –