我尝试使用 onclick 函数对数组进行排序,但收到错误 obj 未定义。也许不在范围之内?
js文件:
function pageLoad() {
var url = API_URL + "/api/Ticket/GetTickets";
var data = Ajax.getData(url);
var obj = [];
var tickets = JSON.parse(data.JsonResult);
obj.Tickets = tickets;
Tickets.Data = obj;
var viewModel = {
theObject: [obj.Tickets]
};
ko.applyBindings(viewModel);
}
function SortColumn(column) {
obj.Tickets.column.sort();
}
最佳答案
是的,这是一个范围问题。将您的 obj
声明移到函数之外,这样两个函数都可以看到它。
类似这样的事情:
var obj = []; // <-- move here
function pageLoad() {
var url = API_URL + "/api/Ticket/GetTickets";
var data = Ajax.getData(url);
var tickets = JSON.parse(data.JsonResult);
obj.Tickets = tickets;
Tickets.Data = obj;
var viewModel = {
theObject: [obj.Tickets]
};
ko.applyBindings(viewModel);
}
function SortColumn(column) {
obj.Tickets.column.sort();
}
编辑:
我不确定您是否知道,[]
是 Array 的简写。如果您尝试创建的是 Object ,那么您应该将分配更改为 var obj = {};
关于javascript - 将数组传递给函数或确保它在范围内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36815745/