2017-04-14 63 views
1

我新的角度和需要幫助的如下─ 我有一個JSON數據作爲我的JSON文件如下:通過對象的JSON數組循環,以顯示其所有數據獨特的屬性

{ 
    "records": 
    [ 
    { 
    "date":1619038000, 
    "name":"Susan", 
    "status":"available" 
    }, 
    { 
    "date":1419038000, 
    "name":"Vinay", 
    "status":"not available" 
    }, 
    { 
    "date":1419038000, 
    "name":"Ajay", 
    "status":"available" 
    } 
    ], 
    "record2":[ 
    { 
    "date":1419037000, 
    "name":"Soumya", 
    "status":"not available" 
    }, 
    { 
    "date":1326439320, 
    "name":"Harsh", 
    "status":"available" 
    }, 
    { 
    "date":1419031000, 
    "name":"Gopi", 
    "status":"available" 
    } 
    ] 
} 

這是我的js文件:

angular.module("myApp",[]).controller("Control",function($scope,$http){ 
     $http.get('myData.json'). 
     success(function(data){ 
     $scope.tableData = data.records; 

     }); 
    }); 

我想以這樣的方式使具有相同「日期」的所有數據被組合在一起,並在table.Could你示JST一個日期時,顯示從JSON表數據請幫助我這個。我想要它如下:

日期名狀態 4月16日蘇珊獲得 4月17日維奈不可 阿賈伊提供

+0

它不是對象的數組,其內部數組 – Sajeetharan

回答

1

要顯示結果:GroupBy日期,請按照以下步驟。

步驟1:將Moment JS庫添加到您的HTML文件中。

http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js 

2步:更新如下控制器文件:

var app = angular.module("myApp",[]); 

app.controller("Control",function($scope,$http){ 
    $http.get('myData.json'). 
     success(function(data){ 
        $scope.tableData = data.records; 
       }); 
}); 
app.filter('groupBy', function() { 
    return _.memoize(function(items, field) { 
     return _.groupBy(items, field); 
    } 
); 
}); 

第3步:爲了呈現數據下面的代碼添加到您的HTML文件。

<ul> 
     <li ng-repeat="(date, persons) in tableData | groupBy:'date'"> 
       {{date * 1000 | date:"dd.MM.y"}} 
       <ul> 
        <li ng-repeat="person in persons"> 
         {{person.name}} 
        </li> 
       </ul> 
      </li> 
</ul> 

Codepen Link

+0

陣列可以請你告訴我什麼是.memoize控制器? – Soumya

+0

請參考以下鏈接瞭解這2個Underscore.js方法。 http://underscorejs.org –