2017-09-16 40 views
1

我正在使用網格,我想用陣列中的數據填充它。從視圖中篩選角度數組

我的列,行,我想填補了網格數據

$scope.columns = [ 
    { id: "1", name: "Col 1" }, 
    { id: "2", name: "Col 2" }, 
    { id: "3", name: "Col 3" }, 
    { id: "4", name: "Col 4" } 
]; 

$scope.rows = [ 
    { id: "1", name: "Row 1" }, 
    { id: "2", name: "Row 2" }, 
    { id: "3", name: "Row 3" }, 
    { id: "4", name: "row 4" } 
]; 

$scope.data = [ 
    { idRow: "1", idCol: "1", value: "Jhon" }, 
    { idRow: "1", idCol: "2", value: "Peter" }, 
    { idRow: "2", idCol: "1", value: "Mary" }, 
    { idRow: "3", idCol: "2", value: "Paul" } 
]; 

一個數組,而我這個代碼視圖做(不好)。

這是因爲我無法通過idRow和從View idColdata陣列篩選。

這段代碼有效,但它根本不好。 你會和我分享哪些改進?

<table> 
    <thead> 
    <tr> 
     <th>Description</th> 
     <th ng-repeat="he in columns">{{he.name}}</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr class="pointer" ng-repeat="fi in rows"> 
     <td>{{fi.name}}</td> 
     <td ng-repeat="co in columns"> 
     <label ng-repeat="es in data" ng-if="es.idRow == fi.id && es.idCol == co.id"> 
      {{es.vale}} 
     </label> 
     </td> 
    </tr> 
    </tbody> 
</table> 

順便說一句:什麼方法來消除數組中的重複項(有些像不同),並從視圖中排序?

正如你所看到的,我是Angularjs的新人。

感謝,CAPITAN S.

+1

什麼是'cols'在'' - 我假定這是不同的到'列'(你已經列出)。 –

+1

對不起。必須是列。我已將名稱從西班牙語更改爲英文,並且我在此過程中犯了這個錯誤。 – CapitanSigfrido

+1

我想要做的是在「數據」數組中請求特定值。不要爲陣列的每個單元做一個循環。 – CapitanSigfrido

回答

0

其 'fi.id' 而不是 'fi.ID或co.ID'

 <table> 
     <thead> 
     <tr> 
      <th>Description</th> 
      <th ng-repeat="he in columns track by $index">{{he.name}}</th> 
     </tr> 
     </thead> 
     <tbody> 
     <tr class="pointer" ng-repeat="fi in rows track by $index"> 
      <td>{{fi.name}}</td> 
      <td ng-repeat="co in columns track by $index" > 
      <label ng-repeat="d in data track by $index" ng-if="d.idRow == fi.id && d.idCol == co.id"> 
       {{d.value}} 
      </label> 
      </td>   
     </tr> 
     </tbody> 
    </table> 

關於重複,也許篩選在控制器陣列。您可以使用array.filter

var arr = [1, 1, 4, 4, 5, 5] 
var newA = arr.filter(function(elem, index, self) { 
    return index == self.indexOf(elem); 
    }) 

紐瓦爲[1,4,5]

+0

這樣做你說得對。下次我會在發佈之前檢查示例。 – CapitanSigfrido