2016-05-16 17 views
0

我正在通過API服務傳遞JSON對象。我無法控制JSON的格式。然而,這是一個有效的JSON對象:在JSON對象的Angular中使用點符號不按預期方式工作

{ 
    "Template" : { 
     "Parameters" : { 
      "Name" : "Test", 
      "Version" : "1.0" 
     }, 
     "Fields" : { 
      "Field" : [{ 
        "Prompt" : "Last Name:" 
       }, { 
        "Prompt" : "First Name:" 
       }, { 
        "Prompt" : "Middle Name" 
       }, { 
        "Prompt" : "ID Number:" 
       } 
      ] 
     }, 
     "Captures" : { 
      "Capture" : [{ 
        "Prompt" : "Picture" 
       }, { 
        "Prompt" : "Picture from file" 
       }, { 
        "Prompt" : "Signature" 
       } 
      ] 
     } 
    } 
} 

我需要做的是通過場中的對象列表循環,這樣我就可以從那裏顯示的值。在這個例子中,我試圖從字段中打印提示值列表。

http://jsfiddle.net/toddhd/0wbfpxkj/9/

<div ng-repeat="item in template.Fields.Field"> 
    {{item.Prompt}} 
    </div> 

這是通過在上面的jsfiddle尋找解釋好得多。

我想要做的就是簡單地使用點/點符號如字段,列表:

template.Fields.Field

但不是爲我工作。在這個例子中,我也做了一系列的ng-repeats,它們循環遍歷每個集合。這工作和產生所需的結果,但它是冗長和醜陋。

我敢肯定,我只是誤解了JSON對象本身的結構,或者可能是正確的點/點符號到達那裏。但我似乎無法弄清楚。你可以看一下,告訴我哪裏出錯了嗎?

謝謝

+0

嗯..你的數據結構不是一個數組 - 它是一個對象,有許多領域。你通過obj「'中的ng-repeat =」(k,v)迭代一個對象 - 一個正確的重複語法的小提琴:http://jsfiddle.net/0wbfpxkj/11/ – tymeJV

+0

請避免使用外部資源作爲細節你的問題。編輯幷包含相關信息。 – Amit

回答

4

它只是被遺漏了另一個Template。它應該是template.Template.Fields.Field

你的HTML應該是這樣的:

<div ng-repeat="item in template.Template.Fields.Field">{{item.Prompt}}</div> 
+0

不知道爲什麼這是downvoted,因爲它是正確的解決方案。你考慮加入這個'

{{item.Prompt}}
'來完成你的答案。 – Nasreddine

+0

@Nasreddine - 由於OP詢問如何動態地迭代對象然後顯示數組,因此它的性能降低了 - 所有這一切都表明如果向下鑽取如何迭代數組。 – tymeJV

+0

@Nasreddine編輯答案,謝謝! –