【发布时间】:2012-09-27 03:29:41
【问题描述】:
我有以下代码:
...
</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 --> 注释标签 inside 前一个 TR 标签,而不是在 TR 标签之间,因此 Knockout 是找不到匹配的<!-- /ko --> 标签。我已在此处链接到问题的屏幕截图: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>
然后一切正常。我想知道是否有人遇到过虚拟元素的这个问题。
【问题讨论】: