gpt4 book ai didi

javascript - "this"将 JSONP 数组分配给 AngularJS Controller 时变量不起作用

转载 作者:行者123 更新时间:2023-12-03 09:33:35 25 4
gpt4 key购买 nike

我有一个 REST 服务,我通过 JSONP 在我的 Angular Controller 中调用它。我想将返回的数组保存到变量中。

这就是我正在做的事情:

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);
}

我预先将 teSTList 定义为 Controller 中的变量:

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);
});
}

关于javascript - "this"将 JSONP 数组分配给 AngularJS Controller 时变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31412112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com