2017-02-07 43 views
0

我有這樣的陣列:濾波數據和顯示每一個類型的第一項

控制器:

$scope.data = [ 
    {id:1, name:"a", type: "letter"}, 
    {id:2, name:"1", type: "number"}, 
    {id:3, name:"b", type: "letter"}, 
    {id:4, name:"2", type: "number"}, 
    {id:5, name:"c", type: "letter"}, 
    {id:6, name:"3", type: "number"}, 
    ]; 
$scope.dataLimit = 1; 

HTML:

<div ng-repeat="user in data | orderBy: 'type' | limitTo: dataLimit"> 
<label ng-bind="'name: ' + user.name"></label> 
<label ng-bind="'type: ' + user.type"></label> 

我試圖過濾數據按類型,我想顯示每種類型的第一個數據,在這種情況下將是:

  • 名稱:A型:信
  • 名稱:1種類型:數

回答

0

你可以寫你的標籤是這樣的:

<label>name {{user.name}}</label> 
+0

感謝您的advi鈰,但你的答案不給我一個解決方案 – DavidAlzate88

0

你可以創建一個自定義filter實際上回報每種類型的第一個對象。

像這樣:

app.filter('orderByType',function(){ 
    return function(input) { 
    var output = []; 
    output.push(input[0]); 
    var firstType = input[0].type; 
    var i = 1; 
    var len = input.length; 
    for(i; i<len; i++) { 
     if(input[i].type != firstType) { 
     output.push(input[i]); 
     return output; 
     }; 
    }; 
    } 
}) 

然後在視圖中使用的過濾器:

<div ng-repeat="user in data | orderByType | limitTo: dataLimit"> 
相關問題