2016-12-07 2 views
1

Я работаю над угловым 2 приложением, в моем текущем проекте я получаю данные из своего API, и это дает JSON, как показано ниже.Невозможно найти отличающийся поддерживающий объект 'object object' 'type' object '

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

Далее я уверен, преобразование данных в формате JSON для машинописи с помощью json2ts инструмента по этой ссылке http://json2ts.com/

Typescript.ts

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

Но когда я использую lookupdetailsassettypeinfo в своем component.html, как это показано ниже. он всегда дает исключение, такое как Не удается найти отличающийся поддерживающий объект «Объект объекта» типа «объект». 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

Смежные вопросы