使用控制器中对象的位置 x,y 创建一个动态网格或表格 - 引导程序,AngularJS
Create a dynamic grid or table using positions x,y from an object in controller - bootstrap, AngularJS
我使用对象提供的位置创建动态表格或网格时遇到了很多麻烦,我不知道我是否很不擅长搜索,但我在谷歌上找不到解决方案。
问题是我在控制器上有这些对象:
$scope.stacks = [{
'id': 1,
'rid': [1, 3, 7, 9],
'power': 'On',
'x': '1',
'y': '1'
}, {
'id': 2,
'rid': [2, 12, 10, 6],
'power': 'Off',
'x': '1',
'y': '2'
}, {
'id': 3,
'rid': [4, 5, 11, 8],
'power': 'Off',
'x': '1',
'y': '3'
}, {
'id': 4,
'rid': [13, 14, 15, 16],
'power': 'Off',
'x': '1',
'y': '4'
}, {
'id': 5,
'rid': [17, 18],
'power': 'Off',
'x': '2',
'y': '1'
}
]
关于位置 x 和 y,我希望能够设置每个对象位置并使用 ng-repeat,现在假设我只想显示一个带有堆栈 id 的按钮,但使用 x,y 位置在正确的位置。
<div class="row">
<div ng-repeat="myStack in stacks">
<button type="button" class="btn btn3-success btn-lg btn3d"><span class="glyphicon glyphicon-ok"></span> {{myStack.id}}</button>
</div>
</div>
我不知道如何将位置链接到 HTML(这意味着您有 1,2 个位置,因此您将被设置为第 1 行第 2 列),有人可以帮我吗?我在这里挣扎,无法想象从来没有人尝试过做这样的事情......
将数组转换为行列表,其中每行都有一个单元格列表。
变换功能:
function transformToRows(stacks) {
var ordered = $filter('orderBy')(stacks, '''x''');
var rows = [];
var maxRows = ordered[ordered.length-1].x;
var maxCells = 0;
angular.forEach(ordered, function(item) {
if (item.y > maxCells)
maxCells = item.y;
});
for (let i = 0; i < maxRows; ++i) {
var row = { index: i, cells: [] };
rows.push(row);
for (let j = 0; j < maxCells; ++j)
row.cells.push({ index: j, data: undefined });
}
angular.forEach(ordered, function(item) {
var row = rows[item.x-1];
row.cells[item.y-1].data = item;
});
return rows;
}
这会将数组转换为以下内容:
[{ index: 0,
cells: [
{ index: 0, data: {...} },
{ index: 0, data: {...} }]
},
{ index: 1,
cells: [
{ index: 0, data: {...} }]
},
...
]
单元格的 data
属性包含堆栈。
然后,您可以使用 ngRepeat 呈现表中的行和单元格:
<table border="1">
<tr ng-repeat="row in rows">
<td ng-repeat="cell in row.cells">
{{ cell.data.power }}
</td>
</tr>
</table>
演示平台
相关文章:
- 使用javascript将动态表从一个html页面打印到另一个html页
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 是否可以仅通过jQuery将图像替换为用户动态选择的另一个图像
- 动态构建一个数据表与scriplets
- 动态创建一个javascript/jquery多级数组
- 如何在javascript转换编码中将一个动态值从一个表单添加到另一个页面
- 你能把一个匿名方法(函数)动态地变成一个命名方法吗
- 将动态元素绑定到函数;只剩下一个绑定
- 为json对象创建一个动态表
- 动态修改一个元素,使其与给定的选择器匹配
- 如何查找一个单词在动态创建的html表行中出现的次数
- 从表单中动态生成一个字符串,传递给通过AJAX加载的PHP文件
- 为node.js创建一个动态的restful api
- Javascript动态表,每个单元格都有一个onmouse事件
- 我如何创建一个动态地图来显示我们公司的位置
- 让ASP.NET中继器设置一个动态名称
- 在Javascript中连接一个动态变量名
- 在javascript中动态添加一个选择下拉菜单