AngularJS / HTML:渲染后需要修改元素高度

时间:2015-10-15 20:16:38

标签: javascript jquery html angularjs

我正在尝试解决一些我认为常规且易于修复的问题。我在表格中有一个表格,如下:

<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)
- 使用范围。$ watch(f(){})在指令中 - 使用控制器中的代码
- 围绕tablefix1 / tablefix2指令的位置移动

对于我尝试的每个解决方案,代码在元素实际呈现之前运行(因此$(“#om1a”)。height()返回0)。

我有什么遗失的吗?还有另一种方法可以达到同样的效果吗?

谢谢。

1 个答案:

答案 0 :(得分:-1)

我弄清楚导致此问题的原因:此内容显示在jQuery UI Mobile可折叠小部件中,因此指令不是正确的方法。相反,我需要绑定到窗口小部件的展开事件并将所需的代码放在那里。