我有一个这样的模型
function DetailsViewModel() {
var self = this;
self.Day = ko.observable();
self.DateNumber = ko.observable();
self.Details = ko.observableArray([]);
self.LoadData = function () {
var data = { date: '2013-09-18' }
var url = "php/abc.php"
var callback = self.Result();
ajax(url , data , self.Result , type );
/*
$.ajax({
url: "/api/Timesheet/DayDetailResult",
async: false,
type: "GET",
data: ko.toJSON(data),
dataType: 'JSON',
success: function (details) {
self.DateNumber(details.DateNumber);
self.Day(details.Day);
self.Details(details.Details);
}
});
*/
};
self.AddDayDetails = function () {
window.location.href = '/Home/AddTimeSheetEntry';
}
self.Result = function (details) {
self.DateNumber(details.DateNumber);
self.Day(details.Day);
self.Details(details.Details);
}
self.LoadData();
}
这是ajax函数
function ajax(url , data , callback , type ) {
var type = (type === undefined) ? "GET" : type;
$.ajax({
url: url,
async: false,
type: type,
data: ko.toJSON(data),
dataType: 'JSON',
success: callback(data)
});
}
问题是,当我在 self.LoadData 函数中取消注释 ajax 请求时,一切正常。但我想在整个应用程序中使用全局 ajax 函数。我正在定义 self.Result ,它需要从 ajax 成功中获取数据,并且应该从 ajax 成功中调用。我怎样才能做到这一点。当我运行我的代码时,我得到了这个错误
`details is undefined`
我认为这里应该做一些事情来让它工作,但我不知道怎么做。
ajax(url , data , self.Result , type );
请帮忙。我不是 Javascript 专家。