Javascript 使用angular获取表格行的高度
我有一张这样的桌子: 它具有基于其容器大小的动态行数,以及每行的大小 如果您查看link列,每一行都可以有多个这样的链接 如果您注意到,底部的分页被取消。这是因为当前当我对表进行回流或调整大小时,我得到的信息是每行都有一个链接。这种情况发生了变化,现在每一行都有多个链接。以下是回流焊之前的工作原理:Javascript 使用angular获取表格行的高度,javascript,html,angularjs,dom,html-table,Javascript,Html,Angularjs,Dom,Html Table,我有一张这样的桌子: 它具有基于其容器大小的动态行数,以及每行的大小 如果您查看link列,每一行都可以有多个这样的链接 如果您注意到,底部的分页被取消。这是因为当前当我对表进行回流或调整大小时,我得到的信息是每行都有一个链接。这种情况发生了变化,现在每一行都有多个链接。以下是回流焊之前的工作原理: var el = $element.closest('.gridster-item'); var height = el.height(); vm.d
var el = $element.closest('.gridster-item');
var height = el.height();
vm.dsHeight = 36;
vm.pageHeight = 52;
var calcHeight = vm.dsHeight + vm.pageHeight;
var rowHeight = height - calcHeight - 40;
var rows = Math.floor(rowHeight / 27) - 1;
vm.numPerPage = rows < 0 ? 5 : rows;
在您看到的var rows=Math.floorrowHeight/27-1中,27是先前假定的恒定行高
现在,对于n>=1个链接,具有多个链接的行的高度要么为27像素,要么为27+16n-1,对于n=0个链接,则为27+16n
我试图找到使用该函数的最佳方法,根据像素高度获得适当的行值。我的第一个想法是取所有高度的平均值,但我在使用Angular访问DOM时遇到了一个问题。下面是HTML如何查找它的
<tbody>
<tr align="left" ng-repeat="row in tableRows track by $index">
<td nowrap ng-repeat="col in row.data track by $index"><span ng-bind-html="col"></span></td>
</tr>
</tbody>
由于某些原因,当我执行$element.find'tbody'时,我可以访问外部tbody元素,但当我尝试转到它的子元素或访问height时,我会得到null或未定义。我不知道如何访问高度,否则,我想不出其他好的方法来改变行的数量基于一个不同的行像素高度 看起来每个链接都在一个重新分配的行上。对吗?如果是这样的话,您就不能计算元素数或元素数并从中获得行数吗?这段代码在哪里运行?它在一个角度指令中吗?它在一个控制器中。如果没有所有的代码,我们就无能为力。您可以创建一个JSFIDLE或类似的东西,问题可能是代码是在表完全呈现之前执行的,您需要呈现的表来计算DOM元素的高度。如果你能找到一种方法在渲染之前从数据中计算出来,那就更有意义了。我可以在渲染之前找到一种方法。这帮了大忙。谢谢抱歉,br和a元素名称丢失。我想我知道该怎么办了。因此,当Angular应用程序处理HTML字符串时,我将它们存储在控制器中的一个变量中。因此,我可以做的是遍历它所在的表行数组,访问每个表行中的数据数组并访问链接单元格,然后检查每个字符串中的链接数量(可能是搜索看到href的次数),然后基于此执行行。