Javascript KnockoutJS虚拟标记Foreach IE8追加额外的行

Javascript KnockoutJS虚拟标记Foreach IE8追加额外的行,javascript,knockout.js,Javascript,Knockout.js,我目前正在使用KnockoutJS 2.1.0以以下形式显示一些带有虚拟标记foreach的数据: <!-- ko foreach:filteredCertificates--> <div> <span data-bind="html:titel">TITEL</span> <span data-bind="html:name">NAME</span> <span data-bind="html:vorna

我目前正在使用KnockoutJS 2.1.0以以下形式显示一些带有虚拟标记foreach的数据:

<!-- ko foreach:filteredCertificates-->
<div>
  <span data-bind="html:titel">TITEL</span>
  <span data-bind="html:name">NAME</span>
  <span data-bind="html:vorname">VORNAME</span>
</div>
<!-- /ko -->
该函数在任何浏览器中都没有任何错误

如您所见,
filteredCertificates
是一个返回数组的
ko.computed()
函数。在所有主流浏览器中,它都工作得很好,但在IE8(令人惊讶)中,它附加了一行,没有绑定数据,只有原始内容。例如,最后一个raw实际上有“TITLE”、“NAME”和“VORNAME”作为值。我可以将它们保留为空字段,但即使其内容为空,也会追加一行


我非常喜欢使用虚拟标记,有没有一种方法可以解决这个问题而不必使用包装foreach的dom元素?

调试一段时间后,当IE决定停止加载你的应用程序时,我意识到这一现象就出现了,因为patiente已经用完了,或者把javascript插入到一起的小猴子们认为这太麻烦了


解决方案是优化你的应用程序,这样DOM绘制就不会花很长时间,或者向Paul Irish祈祷你的客户不会使用IE8,不管这是什么把戏。

我还想确保你没有在兼容模式下运行。你的
filteredCertificates
是如何定义的?你能把一个JSFIDLE放在一起演示你的问题吗?@nemesv我添加了这个函数,并不是很聪明。遗憾的是,放入JSFIDLE相当大,但HTML和JS与此处相同。
self.filteredCertificates = ko.computed(function() {
    return ko.utils.arrayFilter(self.certifiedEntries(), function(certificate) {
      return certificate.isDeutsch;
    });
}