2016-12-07 51 views
1

我正在使用angular 2应用程序,在我当前的项目中,我从我的API获取数据,它给出如下的JSON。无法找到类型为'object'的不同支持对象'[object Object]'

{ 
    "makes": null, 
    "models": null, 
    "trims": null, 
    "years": null, 
    "assetTypes": { 
     "2": "Auto", 
     "3": "Motorcycle" 
    } 
} 

接下来我将JSON数据使用此链接http://json2ts.com/

Typescript.ts json2ts工具,以打字稿

export interface AssetTypes { 
    2: string; 
    3: string; 
} 

export interface RootObject { 
    makes?: any; 
    models?: any; 
    trims?: any; 
    years?: any; 
    assetTypes: AssetTypes; 
} 

然后后,我将使用下面的代码行。在我component.ts

lookupdetailsassettypeinfo: RootObject; 
this._vehicleInfoService.getLookupDetailsTableAssetTypeInfo() 
     .subscribe(lookupdetailsinfo => this.lookupdetailsassettypeinfo = lookupdetailsinfo, 
     error => this.error = <any>error); 

但是,当我在我的component.html中使用lookupdetailsassettypeinfo时,如下所示。它总是给出异常,例如无法找到类型为'object'的不同支持对象'[object Object]'。 NgFor仅支持与阵列等Iterables绑定。

<select id="ASSET_TYPE" class="col-md-12 form-control" > 
    <option>Select One</option> 
    <option *ngFor='let type of lookupdetailsassettypeinfo'>{{type.assetTypes.Customer}}</option> 
</select> 

你能告诉我如何解决上述例外。

-Pradeep

+0

如果改变'.subscribe(lookupdetailsinfo => this.lookupdetailsassettypeinfo = lookupdetailsinfo,''到.subscribe(lookupdetailsinfo => {this.lookupdetailsassettypeinfo = lookupdetailsinfo;的console.log(this.lookupdetailsassettypeinfo) ;},它打印什么? –

+0

'lookupdetailsassettypeinfo:RootObject;'已经表明它不应该是一个数组。 –

+0

我想这行代码lookupdetailsassettypeinfo:RootObject []但它不起作用 – pradeep

回答

0

*ngFor不支持迭代过对象属性。它只支持数组。

参见Access Typescript Object Variables in Angular2

+0

谢谢,我知道* ngFor不支持迭代对象属性。它只支持数组。你能否告诉我在我的代码中我犯了什么错误以及如何解决上述问题 – pradeep

相关问题