我目前正在使用以下形式的KnockoutJS 2.1.0显示一些带有虚拟标签的数据:
<!-- 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
看起来像这样:
self.filteredCertificates = ko.computed(function() {
return ko.utils.arrayFilter(self.certifiedEntries(), function(certificate) {
return certificate.isDeutsch;
});
}
该功能在任何浏览器中都没有任何错误。
如您所见,filteredCertificates
是一个返回数组的ko.computed()
函数。在所有主流浏览器中,它运行良好,但在IE8(惊喜)中,它附加了一个额外的行,没有绑定数据,只是原始内容。例如,最后一个原始实际上有“TITLE”,“NAME”和“VORNAME”作为值。我可以把它们留空,但即使它的内容是空的,它仍会附加一行。
我真的很喜欢使用虚拟标签,有没有办法解决这个问题而不必使用包裹foreach的dom元素?
答案 0 :(得分:0)
经过一段时间的调试后,我意识到当IE决定停止加载您的应用程序时会出现这种现象,因为它要么用完了,要么用小插件将javascript连接在一起就认为这太麻烦了。
解决方案是优化您的应用程序,以便DOM绘画不会永远消失或向Paul Irish祈祷您的客户不会使用IE8,无论诀窍如何。