2014-06-17 26 views
2

對象中的所有項目我很新的(真正)javascript和新角角NG-重複列出與未知屬性名稱

我在寫家庭自動化的應用程序。該應用程序返回設備列表,然後當你點擊一個設備時,它通過JSON返回它的細節(下面的例子)。我遇到的問題是,不同的設備類型在對象中返回不同的名稱值對,我贏了;不知道這些。 (例如,一個燈開關將返回一個暗淡的水平,但恆溫器返回一個傳感器水平。

很明顯,我的應用程序只能做知道屬性的東西(例如,如果它是一個燈光設置昏暗的水平),但用戶可能。要看到所有屬性是其使用方式NG-重複列出所有名稱值對不知道屬性名稱

?例如:

{ 
    "name": "1-Wire Test1", 
    "address": 0, 
    "addressStr": "unknown", 
    "classID": 3, 
    "devProtocol": 999, 
    "displayInUI": true, 
    "displayLongState": "76.7 °F", 
    "displayRawState": "76.700000", 
    "folderID": 1418405935, 
    "hasStateToDisplay": true, 
    "id": 704024169, 
    "lastChanged": 456266814, 
    "lastChangedDateStr": "2014-06-16", 
    "lastChangedRFC3339": "2014-06-17T01:46:54Z", 
    "lastChangedRFC822": "Tue, 17 Jun 2014 01:46:54 GMT", 
    "lastChangedTimeStr": "08:46:54 PM", 
    "sensorValue": "76.7 °F", 
    "type": "1-Wire Temperature Sensor", 
    "typeFlags": 81, 
    "typeSupportsDim": false, 
    "typeSupportsEnergyMeter": false, 
    "typeSupportsHVAC": false, 
    "typeSupportsIO": false, 
    "typeSupportsOnOff": false, 
    "typeSupportsSensorValue": true, 
    "typeSupportsSpeedControl": false, 
    "typeSupportsSprinkler": false, 
    "versByte": 0, 
    "restParent": "devices" 
} 

回答

10

當然,使用(k, v) in o重複語法:

例如:

<span ng-repeat="(property, value) in phoneProperties">{{property}} : {{value}}</span> 
+1

輝煌。非常感謝。希望我能給你一個額外的速度點:-)馬克 – mark1234

1
var anObject = {randomName: "foo", 
       randomNameNumber100: "bar"}; 

在模板

<div ng-repeat="(key, val) in anObject"> 
    <p>{{ key }}</p> 
    <p>{{ val }}</p> 
</div> 

這將基於鍵顯示你的對象,以排序方式。

+0

這種排序是如何看起來像?恕我直言輸出將是原始數組中確定的相同,不是?對於排序的東西,人們需要使用像「OrderBy」這樣的過濾器,請參閱:https://stackoverflow.com/questions/14478106/angularjs排序逐屬性 – Pille