【发布时间】:2015-10-15 20:16:38
【问题描述】:
我正在尝试解决一些我认为是常规且易于解决的问题。我在一个表中有一个表,如下所示:
<table style="border:1px solid" class="bordertable">
<tr>
<td>text</td>
<td>text</td>
</tr>
<tr>
<td>text</td>
<td>text</td>
</tr>
<tr>
<td>text</td>
<td>text</td>
</tr>
<tr>
<td>text
<table style="margin-left:15px;">
<tr id="om1a" name="om1a" tablefix1>
<td>text</td>
</tr>
<tr id="om2a" name="om2a">
<td>text</td>
</tr>
</table>
</td>
<td><br /><br />
<table>
<tr id="om1" name="om1">
<td>text</td>
</tr>
<tr id="om2" name="om2" tableFix2>
<td>text</td>
</tr>
</table>
</td>-->
</tr>
<tr>
<td>text</td>
<td><ul class="ulnorm">
<li>text</li>
</ul>
</td>
</tr>
</table>
基本上,第二个表的两列是由顶级表拆分的。所以,我需要确保最右边一列的高度(1/2)等于最左边一列的高度(1/2a)$("#om1").height($("#om1a").height())
在花了大约 2 小时研究如何使用 Angular 完成此操作后,我还没有想出一个可行的解决方案。到目前为止我尝试过的解决方案包括:
-使用 $timeout(f(), 0)
- 在指令中使用 scope.$watch(f(){})
- 在控制器中使用代码
- 移动 tablefix1/tablefix2 指令的位置
对于我尝试过的每个解决方案,代码在元素实际呈现之前运行(因此 $("#om1a").height() 返回 0)。
我有什么遗漏吗?有没有其他方法可以达到同样的效果?
谢谢。
【问题讨论】:
-
我认为您的问题已经在这里得到解答:stackoverflow.com/questions/12240639/…
-
我尝试将它与 $timeout 一起使用,但它对我不起作用。不过,让我快速尝试一件事。
-
@gpersell 我尝试从 function link(scope, element, attrs) { $timeout(function() { $("#om1").height($("#om1a") 。高度()); }); } 返回 { 链接:链接 };只返回函数(范围、元素、属性){ timeout(function() { $("#om1").height($("#om1a").height()); }); }
-
有人对如何解决这个问题有任何想法吗? @gpersell?
标签: javascript jquery html angularjs