2

私は次のコードを持っています:

...
</tr>
<!-- ko if: eLocBound() == 'true' -->
<tr>
    <td>Select Locations <span class="required_star">*</span></td>
    <td><input type="text" /></td>
</tr>
<!-- /ko -->
<tr>
...

これは、Chrome / Firefox/Safariで正しく表示されます。ただし、IE 9でページを読み込むと、次のエラーが発生します。

Cannot find closing comment tag to match: ko if: eLocBound() == 'true'

IEの開発者ウィンドウでHTML出力を確認すると、IEが実際に<!-- ko if -->コメントタグをTRタグ間ではなく、前のTRタグ<!-- /ko -->にネストしているため、Knockoutは一致するタグを見つけることができません。私はここで問題のスクリーンショットにリンクしました:http://imgur.com/nN7Ln

逆に、コードを次のように変更すると、次のようになります。

<tr data-bind="visible: eLocBound() == 'true'">
    <td>Select Locations <span class="required_star">*</span></td>
    <td><input type="text" /></td>
</tr>

その後、すべてが正常に動作します。誰かが仮想要素でこの問題に遭遇したかどうかを知りたいだけです。

4

1 に答える 1

4

これは、Knockoutが実際に補うことができないInternetExplorerの問題です。あなたの場合、良い回避策はtbodyあなたの行の周りにタグを使用することです。テーブルには複数のtbodyタグを含めることができます。したがって、コードは次のようになります。

 ...
</tr>
<tbody data-bind="if: eLocBound() == 'true'">
<tr>
    <td>Select Locations <span class="required_star">*</span></td>
    <td><input type="text" /></td>
</tr>
</tbody>
<tr>
...
于 2012-09-27T03:42:16.803 に答える