Jquery ajax存储变量,然后稍后检索
jquery ajax store variable and then retrieve later on
嗨,我使用jquery和ajax来检索登录用户的用户id,我将其保存为一个变量,因为我希望以后能够用它做一些逻辑。然而,我有困难访问它。我的代码如下:
$(document).ready(function () {
var taskBoard = {
fetch: function (url, data) {
$('.loading-icon').fadeIn();
$('.task_board').addClass('loading');
$.ajax({
url: url,
async: true,
dataType: 'json',
data: data,
type: 'POST',
success: function (json) {
$('.loading-icon').fadeOut();
$('#task_board').html($(json.data.taskBoard));
$('.task_board').removeClass('loading');
$('.update-results').hide();
} // end success
}); //end ajax
}, //end fetch function
authUser: function (url, data) {
$.ajax({
url: url,
async: true,
dataType: 'json',
data: data,
type: 'POST',
success: function (json) {
$.each($(json), function (index, item) {
taskBoard.storeUser(item.id);
});
} // end success
}); //end ajax
}, //end authUser function
storeUser: function (param) {
var authUserId = param;
return param;
// if I do an alert here the correct user id is returned.
},
} //end var taskBoard
//However if I do an alert here outside of the var taskBoard I get an undefined.
alert(taskBoard.storeUser());
});
任何想法我怎么能得到这个全局分配的变量在这个函数之外?
change this
storeUser: function (param) {
var authUserId = param;
return param;
// if I do an alert here the correct user id is returned.
},
更改为:
authUserId : null,
storeUser: function (param) {
if (param)
{
this.authUserId = param;
}
return this.authUserId;
},
现在var authUserId
将作为属性存储在taskBoard
对象中。当param未定义时,它将返回未更新的值,如果没有,它将首先更新它,然后返回它。
一个更优雅的解决方案是在这里使用Object.defineProperty
。
删除storeUser
属性,并在声明taskBoard
对象后添加以下内容:
Object.defineProperty(taskBoard, "storeUser", {
get : function(){ return this.StoreUserVar; },
set : function(value){ this.StoreUserVar = value; }
});
现在你可以用:
taskBoard.storeUser = item.id;
//-------- taskBoard object
success: function (json) {
$.each($(json), function (index, item) {
taskBoard.storeUser = item.id;
doOtherFunction();
});
//--------
function doOtherFunction()
{
//the callback function fired from the success.
alert(taskBoard.storeUser); //this will alert with the value set.
}
如果你需要一个全局变量,那么在文档之前声明这个变量。准备好了,因为在这个函数中定义的变量只在这个函数
中有效Javascript作用域示例
相关文章:
- 下拉重新加载页面,然后检索值
- 创建一个bookmarklet,可以检索文本框的所有最大长度,然后在表中打印id和最大长度
- 将Javascript发布到PHP,然后在另一个javascript中检索
- 如何使用 JQuery 检索设置了特定类的所有标签的列表,然后从这些标签中删除内容
- 如何将动态追加元素的多个值存储到单个 var 中,然后检索到函数中
- 使用两个 Ajax 调用来发布然后检索数据
- 如何将文本字段('+<>$“)中的特殊字符保存到数据库中,然后使用 PHP 检索它们
- 如何合并两个 JSON 文件,然后检索它
- 如何使用javascript存储然后从Parse中检索图像
- 检索两个列表,对值进行排序和比较,然后显示所有结果
- 从localStorage检索,然后在php中使用
- 如何存储拖动&将项目放入cookie,然后在另一个页面中检索
- 使用Web API从数据库中检索图像,然后将其显示在angularJS中
- 用密钥加密javascript中的pass,然后检索原始密码(尽可能安全)
- 在检索数据时,表单填充然后清除
- 在JavaScript中检索CSS属性,然后对其进行修改
- 检索列表的值,然后对列表进行排序
- 如何将数组推入关联数组,然后检索值进行比较
- Casperjs然后点击打开日期picker,但无法检索日历中的任何内容
- 将Javascript对象保存到NoSQL数据库中,然后检索它