2015-10-05 29 views
0

所以我有一個表,像這樣的錶行的高度。獲取使用角

如果您查看鏈接列,每行都可以有多個這樣的鏈接。

2nd Table

如果你注意到,在底部的分頁得到揭去。這是因爲,當我進行表格的迴流或調整大小時,我得到了每行都會有一個鏈接的信息。這改變了,現在每一行都有多個鏈接。這裏是迴流之前是如何工作的:

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行= Math.floor(rowHeight的/ 27) - 1,27是以前假定不變的行高。

現在,對於n> = 1個鏈接,具有多個鏈接的行的高度爲27像素,或者高度爲27 + 16(n-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元素,但是當我嘗試去的,或訪問高度的孩子我得到null或undefined 。否則我不知道如何訪問高度,也不能想到其他好方法來根據變化的行像素高度更改行數。

+0

此代碼在哪裏運行?它是否在Angular指令中? – jpmorin

+0

它在一個控制器中。 –

+0

如果沒有所有的代碼,我們不能不提供幫助。您可以創建一個JSFiddle或類似的。 – jpmorin

回答

0

它看起來每個鏈接都在重新排列。這是對的嗎?如果是這樣,你不能只計算
元素或元素的數量,並從這個計數得到行數?

+0

對不起,br和一個元素名字丟失了。 –

+0

我想我有一個想法該怎麼做。所以,當Angular應用程序處理它們時,我的控制器中已經存儲了HTML字符串。所以,我可以做的是遍歷它所在的錶行數組,訪問每個錶行中的數據數組並訪問鏈接單元格,然後檢查每個字符串中的鏈接數量(可能搜索的數量是時間href被看到),然後根據這些行做。 –