Javascript 来自ajax post的淘汰映射数据与静态数据
我在Ko映射方面遇到了一个奇怪的问题。 我使用这段代码:Javascript 来自ajax post的淘汰映射数据与静态数据,javascript,jquery,ajax,knockout.js,knockout-mapping-plugin,Javascript,Jquery,Ajax,Knockout.js,Knockout Mapping Plugin,我在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', 'Tr
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;
}
});
};
奇怪的是,我看到了两种结果:
未定义的
if(isFirst!=“True”)
子句是初始化ko视图模型的正确方法吗您正在处理一个异步操作(Ajax请求)。这些操作没有返回值。因此,这是行不通的:
ko.mapping.fromJS(search('someSearch', 'True'));
这就是success
回调的目的。传入数据只能在那里处理
function search(queryString, targetObservable) {
$.ajax({
type: 'POST',
url: 'url',
data: { 'searchQuery': queryString },
dataType: 'json',
success: function (dt) {
ko.mapping.fromJS(dt, targetObservable);
}
});
};
search('someSearch', PostsViewModel);
您正在处理一个异步操作(Ajax请求)。这些操作没有返回值。因此,这是行不通的:
ko.mapping.fromJS(search('someSearch', 'True'));
这就是success
回调的目的。传入数据只能在那里处理
function search(queryString, targetObservable) {
$.ajax({
type: 'POST',
url: 'url',
data: { 'searchQuery': queryString },
dataType: 'json',
success: function (dt) {
ko.mapping.fromJS(dt, targetObservable);
}
});
};
search('someSearch', PostsViewModel);
您的问题不清楚包括所有其他脚本以便我们可以查看模型结构和绑定您的问题不清楚包括所有其他脚本以便我们可以查看模型结构和绑定