Ajax调用只会执行一次,然后就像缓存响应一样,因此我的observable会保留旧值。
代码如下所示:
$.ajax({
url: "@Url.Action("GetInfo", "Info")",
type: "GET",
dataType: 'json',
data: { id: newSelection },
async: false,
contentType: "application/json",
success: function (response) {
if (response.success) {
var array = [];
var existing = [];
$.each(response.data, function (index, value) {
array.push(value);
existing.push(value)
});
self.myObservable(array);
self.myObservable2(existing);
} else {
alert(response.message);
}
}
});
});
为什么这段代码在firefox和chrome中完美运行但是不是吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
离开页面时是否尝试使用ko.cleanNode
?
示例:
$(document).on("pagehide", function()
{
ko.cleanNode(document);
});