我想根据用户提供的行数和列数来过滤数据。
我在读取此excel文件后获取控制器上的数据:
这是我在用户给出4行作为要渲染的输入后得到的行数据,这里有4行数据:
在每一行中,都有包含列名和单元格值的键值对:
我想根据通过列的标题名称过滤此行数据,以便该行只有值,直到定义列。目前我正在获得整行值。
我写过这样的逻辑,但这不起作用。
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
}
}
}
}
为代码添加plunker。 http://plnkr.co/edit/28Z44xDBug7nFCQnKZJL?p=preview
我能够在UI上过滤数据,并根据用户输入仅获取行和列数据。 但我需要控制器上的相同数据,以便我可以将其保存在MongoDb中。我想根据列输入过滤行数据。所以,我只得到行数据,直到列定义。
请建议我如何过滤数据并且可以拼接行值,以便在行i中可以具有最多定义的列数的值。例如,如果我用户输入了4行和5列,那么在我的行Data中,我只能拥有最多5列的值以及我可以从数组中删除的所有其他值。在我的代码中,我目前无法将键值设置为数组键。
请帮我解决这个问题。
答案 0 :(得分:0)
看起来你大部分都在那里。您只需要将rowData指定为$ scope.rowData,以便angular可以访问它,并使Angular文档显示{{rowdata}}(显示$ scope.rowData)。
您可能需要将其排列到列中,因此您可以对rowData执行ng-repeat,使用variable = row,并在TR TD标记中显示row.1
例如..
<tr ng-repeat="row in rowData">
<td>{{row.1}}</td>
<td>{{row.2}}</td>
</tr>