Javascript数组变量作用域
Javascript Array Variable Scope
我在Javascript中遇到数组变量作用域问题。这是我的代码
var features = new Array();
var x = 0;
$.ajax({
async: true,
url: domain + "client/applications/getFeatures",
dataType: 'json',
success: function(data) {
if (data.code == 200) {
$.each(data.data, function(i, val) {
features[x] = val.features_value;
x++;
});
}
}
});
alert(features[0]);
弹出的结果总是"未定义"。你有解决方案吗?感谢
问题不在于变量作用域,而在于异步代码。
您的警报在成功回调之前触发,因此尚未设置功能。改为这样做:
$.ajax({
// ... other AJAX opts
success: function(data){
var features = new Array();
if(data.code == 200){
var x = 0;
$.each(data.data, function(i, val){
features[x]=val.features_value;
x++;
});
}
alert(features[0]);
}
});
如果需要使用alert();(例如,您没有使用它进行调试)然后您需要将它包含在成功函数中,因为它是异步的,需要等到它得到响应后才能显示值!
相关文章:
- 当我更新另一个作用域变量时,作用域变量会自动更新
- 如何在隔离作用域指令中访问此作用域变量
- 正在向构造函数添加作用域变量
- 如何在angularjs中将多个作用域变量传递到自定义指令中
- 作用域变量未从状态父控制器继承到子控制器
- 插槽:访问作用域变量
- 在另一个作用域变量中使用AngularJS作用域变量
- 在Angular.js中通过检查作用域变量进行过滤
- 如何更新作为属性传入的作用域变量
- Node.js中的垃圾收集作用域-变量将保持设置状态多长时间
- 从$http.get调用更新Angular作用域变量
- AngularJS ui路由器:访问子作用域变量
- 访问AngularJS中函数中的作用域变量
- 为什么Angular 1.5双向绑定在将作用域变量传递给组件绑定时失败
- 修改作用域变量后,未更新作用域绑定
- 控制器作用域变量在刷新之前未加载
- 将Angular作用域变量的字符串描述传递给指令
- 将内部作用域变量绑定到外部“模板”
- 无法在 $.post 回调中设置作用域变量
- 如何从在 JS 中用作参数的匿名函数中分配外部作用域变量