2017-09-16 16 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" } 
]; 

の配列を持っています。私はビューからidRowidColを使用してdata配列をフィルタリングすることはできませんので

です。

このコードは機能しますが、まったくうまくありません。 あなたは私と共有する改善点は何ですか?

<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> 

ところで:(いくつかの異なるなど)の配列で重複をelimitateし、ビューからそれをソートする方法は何ですか?

ご覧のとおり、Angularjsの新機能です。

おかげで、キャピタンS.

+1

''でcols' '何ですか既に列挙している '列'に変換します。 –

+1

申し訳ありません。列でなければなりません。私はスペイン語から英語に名前を変更しました。私はその過程で間違いを犯しました。 – CapitanSigfrido

+1

"data"配列の特定の値を求めています。アレイのすべてのセルに対してループを実行しません。 – 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); 
    }) 

のnewAは使用することができます[1、4、5]

+0

あなたは正しいです。次回は、投稿する前にその例をチェックします。 – CapitanSigfrido

関連する問題