0

这是我的代码:

首先程序的执行来到这里:

refreshTree(function() {
            $.ajax({
                type: "POST",
                url: "/ControllerName/MethodName1",
                success: function (data) {
                    refresh();
                }
            });
        });

这是 的定义refreshTree()

function refreshTree(callback) {
    var isOk = true;
    $.ajax({
        type: "GET",
        url: "/ControllerName/MethodName2",
        success: function(data) {
            if (data == 'True') {
                isOk = false;
            }
            callback();
        }
    });
}

这是refresh()方法:

function refresh() {
    if (isOk) {
        //do something
    }
}

问题是,我不知道如何isOkrefresh(). 有没有办法将变量发送到refresh(),而不是全局变量?

4

2 回答 2

4

你在这里的闭包中捕获它:

refreshTree(function(isOk) {
    $.ajax({
        type: "POST",
        url: "/ControllerName/MethodName1",
        success: function (data) {
            refresh(isOk);
        }
    });
});

并在这里传递:

function refreshTree(callback) {
    var isOk = true;
    $.ajax({
        type: "GET",
        url: "/ControllerName/MethodName2",
        success: function(data) {
            if (data == 'True') {
                isOk = false;
            }
            callback(isOk);
        }
    });
}

和这里:

function refresh(isOk) {
    if (isOk) {
        //do something
    }
}
于 2013-07-16T13:29:14.457 回答
1

只需将其作为参数传递:

refreshTree(function(status) {
        $.ajax({
            type: "POST",
            url: "/ControllerName/MethodName1",
            success: function (data) {
                refresh(status);
            }
        });
    });

刷新树()函数:

function refreshTree(callback) {
var isOk = true;
$.ajax({
    type: "GET",
    url: "/ControllerName/MethodName2",
    success: function(data) {
    var isOk=true;
        if (data == 'True') {
            isOk = false;
        }
        callback(isOk);
    }
});

}

刷新()方法:

function refresh(status) {
if (status) {
    //do something
 }
}
于 2013-07-16T13:34:32.893 回答