我有一个REST服务,我通过JSONP在我的角度控制器中调用。我想将返回的数组保存到变量。
这是我正在做的事情:
D
我事先已将testlist定义为控制器中的变量:
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);
}
请注意两个控制台输出调用。问题是,第一个显示正确的数组:
this.testlist = [];
但第二个显示一个空数组(可能是初始化的数组):
Array [ Object, Object ]
如何将返回的对象保留在数组中?
提前致谢,
弗兰克
答案 0 :(得分:1)
这是一个范围问题。尝试将外部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);
});
}