2016-10-19 12 views
0

Я получаю две разные структуры данных в формате JSON от сервера, как показано нижеПозвоните свойство, если свойство присутствует в JSON

JSON 1:

{ 
    [{ 
     name : 'sample1', 
     code:'sample code 1', 
     data : { 
        display :'test' 
       } 
     },{ 
     name : 'sample2', 
     code:'sample code 2', 
    } 
    ] 
} 

Я хочу показать свойство data.display в UI.

<div *ngFor="let item of items" > {{item.data.display}} </div> 

если я называю data.display, как указано выше, это вызывает ошибку. Как преодолеть это

Я хочу показать пустое, если свойство данных отсутствует в JSON.

То же самое я пытаюсь использовать в нг-премьер grid.If я пытаюсь установить заголовки и jsonNode, происходит ошибка

let headers = [ 
      { jsonNode: "name", displayText: "Name", style: JSON.parse('{"width":"190px"}') }, 
      { jsonNode: "data.display", displayText: "Display name", style: JSON.parse('{"width":"190px"}') } 
     ]; 

ответ

1

Вы можете использовать Элвис (?) оператор:

<div *ngFor="let item of items"> {{item.data?.display}} </div> 

Вот Plunker благодаря Gopinath Shiva.

Решение для ng-prime grid:

let headers = [ { 
    jsonNode: "name", 
    displayText: "Name", 
    style: JSON.parse('{"width":"190px"}') 
}, { 
    jsonNode: data != undefined ? data.display : '', 
    displayText: "Display", 
    style: JSON.parse('{"width":"190px"}') 
} 
] 
+0

я пытаюсь присвоить значение data.display в нг-премьер grid header. Я приведу пример для упрощения понимания. –

+0

@sethupalaniyappan Это то же самое. Если вы не можете заставить его работать, отправьте здесь код. –

+0

let headers = [ {jsonNode: "name", displayText: "Name", style: JSON.parse ('{"width": "190px"}')}, {jsonNode: "data.display", displayText : «Показать», стиль: JSON.parse ('{"width": "190px"}')}, {jsonNode: "exchange.code", displayText: "Exchange", стиль: JSON.parse ('{" width ":" 190px "} ')}, ]; –

1

Вы можете обернуть данные в <span></span> элементе и использовать *ngIf директиву:

<div *ngFor="let item of items"> 
    <span *ngIf="item.data">{{item.data.display}}</span> 
    <span *ngIf="!item.data">item.data is null</span> 
</div>