2016-07-26 79 views
0

基本上,我有存儲在JSON文件作爲對象數據,在下面的格式:使用ngFor通過一個「更復雜」對象來迭代

{ 
    "name": { 
     "source1": ____, 
     "source2": ____, 
     "source3": ____ 
    }, 
    "xcoord": { 
     "source1": ____, 
     "source2": ____, 
     "source3": ____ 
    } 
} 

我用this strategy(轉到「執行多個併發http請求「)通過服務將JSON數據加載到我的組件中。

現在我需要一個ngFor語句遍歷「name」鍵,返回每個源的名稱值。我想在<select>中顯示所有這些名稱值。我還希望每個<option>value都是數據對象「名稱」鍵中的「source1」,「source2」,「source3」。

我不太確定我應該如何去做這件事,而且我對Typescript/Angular2有點不熟悉。做我想做的最好的策略是什麼?也許我應該爲ngFor語句做一個管道來讀取我的對象作爲數組?或者,也許我應該創建一個新的類來重新格式化數據,並返回一個名稱數組?

無論哪個更好的方法,我不知道如何做任何一個。我會感謝一些幫助!

回答

0

我需要一個ngFor聲明通過「姓名」鍵進行迭代, 每個源

遍歷返回名稱值name需要使用jsonObject.name它會返回一個訪問它目的。

Object.keys將返回它的屬性數組。

forEach用於循環陣列

var selectOptions = ''; 
var _getName = jsonObject.name; // will return value of name object 
Object.keys(_getName).forEach(function(item){ 
selectOptions +='<option value ="'+_getName[item]+'">'+(_getName[item])+'</option>';}) 
$("#someSelectId").append(selectOptions) 

JSFIDDLE