2016-12-13 6 views
0

ユーザーが提供する行数と列数に基づいてデータをフィルタリングしたい。角度を使ってキーと値を配列で押し込む方法

私はこのファイルをエクセル読んだ後、コントローラにデータを取得しています:

enter image description here

これは、ユーザが入力列として5を通過した後、私は取得しています列ヘッダーの値である: enter image description here

これは、ユーザーがレンダリングする入力として4行を入力した後に取得する行データです。ここに4行のデータがあります。 enter image description here

各行内部

は、列名とセル値を含むキー値ペアがある:

enter image description here

私はそのようにカラムを通って来ているヘッダー名に基づいて、この行のデータをフィルタリングします行は、列が定義されるまでの値のみを持ちます。現在、私は行全体の値を取得しています。

私はこのようなロジックを書いていますが、これは機能しません。

var rowData=[]; 
for(var i=0;i<headerNames.length;i++){//headerNames contains column names 
    for(var j=0;j<data.length;j++){//data contains the rows data 
     for(var keyName in data[j]) 
     if(angular.equals(keyName,headerNames[i])){ 
      rowData.push({'keyName':data[j][keyName]})//I want only the key,values which matches the column names. I want to set the keyName value as array key but I am not getting its value instead it is coming like keyName:18 
     } 
     } 
    } 
} 

コードにプランカを追加する。 http://plnkr.co/edit/28Z44xDBug7nFCQnKZJL?p=preview

私はUIでデータをフィルタリングし、ユーザーの入力ごとに行と列のデータのみを取得できます。 しかし、コントローラで同じデータが必要なので、MongoDbに保存することができます。列の入力ごとに行データをフィルタリングしたい。だから、私は列が定義されるまで行データを取得するだけです。

データをフィルタリングして行の値をスプライスして、行iで定義されている列番号までの値を持たせることをお勧めします。たとえば、私のユーザーが4行5列を入力した場合、私の行Dataには5列までの値しか持たず、他のすべての値を配列から取り除くことができます。私のコードでは現在、キー値を配列キーとして設定することができません。

この問題を解決するのを手伝ってください。

+2

画像ではなく、質問自体に[mcve]を含めてください。私たち自身が問題を再現できるようなものでなければなりません。また、実際には角度固有のコードはほとんどありません。あなたの検索語で角を含まずに検索しようとするかもしれません。 –

答えて

0

あなたがそこにいる最中のように見えます。 rowDataに$ scope.rowDataを割り当てて、angleがそれにアクセスできるようにし、Angularドキュメントに{{rowdata}}($ scope.rowDataを表示)を表示させるだけです。

ので、あなたが変数と=行、およびTR TDタグで、rowDataにNGリピートを行うかもしれませんがあなたはおそらく列にそれを配置する必要がありますがrow.1

などに

...のようなものを示し、
<tr ng-repeat="row in rowData"> 
<td>{{row.1}}</td> 
<td>{{row.2}}</td> 
</tr> 
+0

いいえ、私はデータをmongodbに渡して保存する必要があるので、実際にはコントローラ自体にその値が必要です。だから、基本的に私は、ユーザー定義の行と列の値を持つデータが必要です。たとえば、ユーザーが4行5列を入力した場合、必要なデータは5列目のヘッダーと5行目の行データだけです。 –

関連する問題