2016-12-26 51 views
-2

在JSON對象單JSON元件I具有JSON作爲檢索在角2

labelnames={ 
    "one": "", 
    "two": "", 
    "three": "", 
    "four": "" 
}; 

現在我有用於每個單獨labelname條件。所以,如果我想顯示labelname[0]即「one」並使用它,那麼我應該遵循什麼方式?

我嘗試使用管道和ngfor循環,但我得到的labelnames

<li *ngFor="let doc of labelnames | keys"> 
{‌{doc.key}} 
</li> 

所有值我只需要單個元素取決於指數。

幫我解決這個問題。

+0

首先要正確設置你的代碼,其次你真的想用那個'keys'管道嗎? –

+1

其次,瞭解術語「JSON」的含義。你有什麼不是JSON - 這是一個JavaScript對象。學習如何引用JavaScript對象的屬性,讓人們知道你的意思 - 它們不被稱爲「元素」。學習「對象」和「數組」之間的區別 - 'labelname [0]'是**數組中的第一個元素**,稱爲'labelname',而不是對象中的第一個屬性。我們不知道你的意思是「每個'labelname'的單獨條件。條件做什麼? – 2016-12-26 13:38:56

+0

@torazaburo從我的理解,他/她想迭代對象的鍵,他一直(嘗試)通過列出所有鍵和/或值來手動執行它,但是想用'* ngFor'進行迭代。至少這是我的理解和基於我的答案,但我可能完全錯誤:D – Alex

回答

2

這裏有一個解決方案:

您的對象:在組件

obj= { "one": "", "two": "", "three": "", "four": "" }; 

方法:

keys() { 
    return Object.keys(this.obj); 
} 

你的HTML:

<p *ngFor="let key of keys()">{{key}}</p> 

將輸出:

one 
two 
three 
four 

編輯,並在頂部一些糖...如果你需要顯示的所有按鍵和鍵的值,這將是一段路要走:

obj2 = { "one": "1", "two": "2", "three": "3", "four": "4" }; 

並在視圖:

<p *ngFor="let key of keys()">{{key}}: {{obj2[key]}}</p> 

這將顯示:

one: 1 
two: 2 
three: 3 
four: 4 

EDIT2:重讀你的疑問句重刑,讓我重新思考,也許我誤會了,這是你需要的東西:

objValue = Object.keys(obj)[0] // put which index you want 

將輸出

one 

好了,現在我想我已經涵蓋在這個答案的所有基地! :D 更多關於Object.keys這裏:Object.keys

+0

感謝這對我有效 – user410946

+0

太棒了!很高興幫助!既然它解決了你的問題,請考慮接受答案!更多信息在這裏:http://meta.stackexchange.com/a/5235謝謝!:) – Alex