2015-07-20 54 views
1

我剛剛發佈了一個問題。我正在考慮編輯這個問題,但我決定不這樣做,這樣我就不會混淆任何人。區別在於屬性的類型現在是一個集合(一個數組)。使用ng-repeat在對象內部的數組上迭代

{ 
    "attributes": [{ 
    "scott": { 
     "fullname": "Scott D Man", 
     "age": 48 
    } 
    }, { 
    "bill": { 
     "fullname": "William Shatner", 
     "age": 45 
    } 
    }] 
} 

我仍然想要做同樣的輸出,使用ng-repeat顯示它們的關鍵,全名和年齡。

+0

使用納克重複=「屬性「,然後 Object.keys(屬性)[0],Object.keys(屬性)[0] .fullname和Object.keys(屬性)[0] .age – binariedMe

+0

我對你的迴應很感興趣,因爲你只提到了一個ng-repeat。現在,我的代碼使用單個ng-repeat,並希望不添加另一個ng-repeat。如果你製作一個示例html,可以嗎?因爲我們已經有了上面的數據,所以不需要創建控制器。我很想看看ng-repeat如何使用您的解決方案。謝謝。 – devwannabe

回答

3

你可以做到這一點,如下

<div ng-repeat="attr in model.attributes"> 
    <div ng-repeat="(key, value) in attr"> 
     Name: {{key}} 
     Full Name: {{value.fullname}} 
     Age: {{value.age}} 
    </div> 
    </div> 
+0

這就是我之前計劃要做的事情,但我希望能夠通過使用單個ng-repeat來實現 – devwannabe

2

我說的是這樣的:

<div ng-repeat="attr in model.attributes"> 
{{getKeys(attr)}} 
<div>{{attr[keys[0]]}}</div> 
<div>{{attr[keys[0]].fullname}}</div> 
<div>{{attr[keys[0]].age}}</div> 
</div> 

這裏getKeys()函數將是:

getKeys(attr){$scope.keys = Object.keys(attr);} 

不過我想嘗試把這樣的數據:

{ 「屬性」:[{ 「屬性」: 「斯科特」, 「全稱」: 「斯科特d人」, 「年齡」:48 }] }

+0

我無法更改數據,因爲它是我們的api團隊的組織者。無論如何,我有你的想法。 – devwannabe

+1

而您可以事先修改數據,以免混亂視圖。而不是在ng-repeat之後進行getKeys。一旦你從API獲取數據,使用函數modulateData(),然後在任何麻煩的情況下永遠在你的html中使用它。 – binariedMe

+1

我真的這樣做,使我現有的HTML模板將是相同的,它的工作。 :) – devwannabe