javascript - 将数组传递给函数或确保它在范围内?

标签 javascript

我尝试使用 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/

相关文章:

javascript - 无法访问不可变对象(immutable对象)中的嵌套对象

javascript - 如何在 React 中获取自定义 Hook 以首先加载,然后使用 setInterval 每 4 秒运行一次?

javascript - Sharepoint REST 创建讨论回复

javascript - 如何选择第一个 child ?

javascript - 将选定的 textContent 和新值传递给更新函数时,元素文本不会更改

javascript - 有一个 promise 会多次轮询直到不抛出错误

javascript - 如何在 woocommerce 之后添加自定义 JavaScript?

javascript - 使用javascript在多个页面中获取相同的值

javascript - 如何消除渲染阻塞 JavaScript

javascript - 通过对 Flask 的函数调用更新值