我有一个特定于 IE 的奇怪问题(我检查了从 IE8、9 和 10 开始的多个版本),我的模型记录成倍增加 (即,如果我有 2 条记录,它显示 2X2 = 4,如果 3 则3X3 = 9)。我有一个简单的 Grid,它与我的 viewModel 绑定,我在加载页面后通过 getJson 获取它。这是代码片段(还有更多我只是保持最小) -
function createCommentsKO(){
$.getJSON('http://www.tempSite.com/getMyjson',
function (data) {
...
viewModelComments.allComments = ko.mapping.fromJS(data.AllComments);
...
ko.applyBindings(viewModelComments, document.getElementById("divComments"));
});
在网格中,我像这样迭代 witnin -
<div id="divComments">
...
<table>
<thead>...</thead>
<tbody data-bind="foreach: allComments">
<tr data-bind="attr:{className:_Deleted()?'deletedTR':'deletedTR_NO'}">
<td nowrap="nowrap">
<span data-bind='text:Comment'></span>
...
</td>
</tr>
</tbody>
</table>
...
</div>
这怎么可能?为什么 IE 会增加我的模型记录,它在 Firefox 中完美呈现。有什么线索吗?
更多信息 - 这里 viewModelComments.allComments 是一个绑定到网格的 Observable 数组。我返回的 json 结果是一个带有数组和其他一些对象的 JSON 对象。我将实现分离了一小部分并尝试了以下显示正确结果的方法 -
viewModelComments.allComments(data.AllComments);
它与以下有何不同:(顺便说一句,我需要对象数组中的每个元素都是可观察的以供进一步使用)
viewModelComments.allComments = ko.mapping.fromJS(data.AllComments);