这是我的代码:
首先执行该程序:
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
}
}
问题是,我不知道如何在isOk
中获取refresh()
变量。有没有办法将变量发送到refresh()
,而不是它是一个全局变量?
答案 0 :(得分: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
}
}
答案 1 :(得分:1)
只需将其作为参数传递:
refreshTree(function(status) {
$.ajax({
type: "POST",
url: "/ControllerName/MethodName1",
success: function (data) {
refresh(status);
}
});
});
refreshTree()函数:
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);
}
});
}
Refresh()方法:
function refresh(status) {
if (status) {
//do something
}
}