Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用angular获取表格行的高度_Javascript_Html_Angularjs_Dom_Html Table - Fatal编程技术网

Javascript 使用angular获取表格行的高度

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

我有一张这样的桌子:

它具有基于其容器大小的动态行数,以及每行的大小

如果您查看link列,每一行都可以有多个这样的链接

如果您注意到,底部的分页被取消。这是因为当前当我对表进行回流或调整大小时,我得到的信息是每行都有一个链接。这种情况发生了变化,现在每一行都有多个链接。以下是回流焊之前的工作原理:

 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的次数),然后基于此执行行。