【发布时间】:2013-12-18 20:07:10
【问题描述】:
我遇到了一个关于 Ko 映射的奇怪问题。 我使用这段代码:
var PList = [{ "Region": { "RegionName": "SomeRegion" }, "CDetails": {}, "Category": { "Name": "SomeCategory" }, "PSource": 1, "PDate": "0001-01-01T00:00:00"}];
var PViewModel = ko.mapping.fromJS(search('someSearch', 'True'));
var PViewModel2 = ko.mapping.fromJS(PostList);
function search(queryString, isFirst) {
$.ajax({
type: 'POST',
url: 'url',
data: { 'searchQuery': queryString },
dataType: 'json',
success: function (dt) {
if (isFirst != 'True') {
ko.mapping.fromJS(dt, PostsViewModel);
}
return dt;
}
});
};
奇怪的是,我看到了 2 个结果:
- 当我转到 PViewModel(由 ajax 填充的那个)时,我看到它为
undefined - 当我转到 PViewModel2(具有静态数据的那个)时,我可以看到预期的对象
*PViewModel2的静态数据只是ajax post返回的数据的一个副本。
我的问题是:
- 有人知道为什么会这样吗?以及如何解决?
- 此外,
if (isFirst != 'True')子句是初始化 ko 视图模型的正确方法吗?
【问题讨论】:
-
你的问题不清楚
-
包含更多脚本,以便我们查看模型结构和绑定
标签: javascript jquery ajax knockout.js knockout-mapping-plugin