如何固定表格元素的位置
How to fix the positions of table elements Angular.js
我正在使用Angular.js将JSON数据绑定到ng-table
。
如果任何值为null,则打乱所有列的位置。我如何修复与列标题的数据?
参见此Plunker: http://plnkr.co/edit/Ixvp8B0dRwOBDHflmu2j?p=preview
Description
应该是null
,但是所有的值都向左移动。
或者,如果任何属性的所有值都为空,则隐藏该特定列
为了确定列是否为空,您需要通过迭代数据来创建某种列配置,以查看是否所有行都包含任何标题(对象键)的数据。
然后您可以使用该列配置数组作为<th>
和<td>
的中继器。
示例配置:
[
{
"heading": "Id",
"display": true
},
{
"heading": "Title",
"display": true
},
{
"heading": "Description",
"display": true
},
{
"heading": "Test",
"display": false
}
]
HTML
<thead>
<tr>
<th ng-repeat="col in colConfig" ng-if="col.display">{{col.heading}}</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in data">
<td ng-repeat="col in colConfig" ng-if="col.display">
{{item[col.heading]}}
</td>
</tr>
</tbody>
config create
var keys = Object.keys(data[0]);
function createConfig() {
var validKeyCounts = {};
var colConfig;
keys.forEach(function (key) {
validKeyCounts[key] = 0;
})
data.forEach(function (row, idx) {
keys.forEach(function (key) {
if (row.hasOwnProperty(key) && row[key] !== null) {
validKeyCounts[key]++;
}
})
});
colConfig = keys.map(function (key) {
return {
heading: key,
display: validKeyCounts[key] > 0
}
});
return colConfig
}
我相信这是可以优化的,但这只是一种开始使用所需功能的方式
演示相关文章:
- 从鼠标点(及更多)查询位置元素
- 保持光标位置元素在顶部使用 svg
- 如何在每次页面重新加载时更改渐变背景,同时保持光标位置元素处于活动状态
- 使用JS暂时禁用在位置/元素处滚动
- 相对于另一个元素的位置元素不起作用
- 返回包含随机位置元素的数组
- 如何在 Jquery 中根据屏幕大小移动绝对位置元素
- 如何在html中设置固定位置元素的最大深度
- 无论如何,如果绝对位置元素位于屏幕下方,则使正文滚动条出现
- 绝对位置元素未隐藏在滚动框之外
- 为什么浮动位置 元素缩小时元素不移动
- 固定位置元素…动作
- 当元素处于相对位置元素时,查找元素偏离窗口的jQuery或JavaScript方法
- 绝对位置元素,这样它们的行为就像浮动一样
- jQuery鼠标在菜单和动画位置元素后面
- 捕获绝对位置元素上的单击事件
- 如何设置固定位置元素的高度以达到浏览器窗口的底部
- jQuery绑定位置:元素的绝对位置
- 如何将固定位置元素限制为浏览器窗口的高度
- 如何在不使用JS的情况下使用TOC滚动页面上的固定位置元素