"this" 将 JSONP 数组分配给 AngularJS 控制器时变量不起作用
"this" variable not working when assigning JSONP array to AngularJS controller
我有一个通过 JSONP 在 angular 控制器中调用的 REST 服务。我想将返回的数组保存到一个变量中。
这是我正在做的事情:
this.testTheRest = function()
{
$http.jsonp('myRESTService', {
params: {
callback: 'JSON_CALLBACK',
format: 'json'
}
})
.success(function (data) {
this.testlist = data.NoParamsResult;
console.log(this.testlist);
})
.error(function (data) {
alert(data);
});
console.log(this.testlist);
}
我事先在controller中定义了testlist为一个变量:
this.testlist = [];
注意两个控制台输出调用。问题是,第一个显示正确的数组:
Array [ Object, Object ]
但是第二个显示一个空数组(可能是初始化的那个):
Array [ ]
我需要做什么才能将返回的对象保留在数组中?
提前致谢,
弗兰克
这是一个范围界定问题。尝试将外部 this
分配给另一个变量(例如 that
),然后使用该变量而不是 this
.
var that = this
that.testTheRest = function() {
$http.jsonp('myRESTService', {
params: {
callback: 'JSON_CALLBACK',
format: 'json'
}
})
.success(function (data) {
that.testlist = data.NoParamsResult;
console.log(that.testlist);
})
.error(function (data) {
alert(data);
});
}
我有一个通过 JSONP 在 angular 控制器中调用的 REST 服务。我想将返回的数组保存到一个变量中。
这是我正在做的事情:
this.testTheRest = function()
{
$http.jsonp('myRESTService', {
params: {
callback: 'JSON_CALLBACK',
format: 'json'
}
})
.success(function (data) {
this.testlist = data.NoParamsResult;
console.log(this.testlist);
})
.error(function (data) {
alert(data);
});
console.log(this.testlist);
}
我事先在controller中定义了testlist为一个变量:
this.testlist = [];
注意两个控制台输出调用。问题是,第一个显示正确的数组:
Array [ Object, Object ]
但是第二个显示一个空数组(可能是初始化的那个):
Array [ ]
我需要做什么才能将返回的对象保留在数组中?
提前致谢,
弗兰克
这是一个范围界定问题。尝试将外部 this
分配给另一个变量(例如 that
),然后使用该变量而不是 this
.
var that = this
that.testTheRest = function() {
$http.jsonp('myRESTService', {
params: {
callback: 'JSON_CALLBACK',
format: 'json'
}
})
.success(function (data) {
that.testlist = data.NoParamsResult;
console.log(that.testlist);
})
.error(function (data) {
alert(data);
});
}