项目场景:
我从接口获取到银行卡号列表,然后训话匹配开户行名称,结果用了BIN.getBankBin匹配方法之后里面的数据赋值不到外层数据
_this.$apiQUserBanklist().then(res => {
if (res.data.code == 200) {
_this.termlist = JSON.parse(JSON.stringify(res.data.rows));
for (var i = 0; i < _this.termlist.length; i++) {
BIN.getBankBin(self.termlist[i].cardNo).then(function(one) {
_this.termlist[i].bankName = one.bankName;
console.log(_this.termlist[i].bankName);
})
}
console.log(this.termlist);
}
})
问题描述
BIN.getBankBin方法里面取不到外层的this以及循环的 index ,所以赋值一直是最后一个开户行名称
解决方案:
const self = _this;
const ils = i
把this和训话下标 i 都命名为常量const,
这样方法里面就能获取到外层的指向了,完整代码如下:
_this.$apiQUserBanklist().then(res => {
if (res.data.code == 200) {
_this.termlist = JSON.parse(JSON.stringify(res.data.rows));
for (var i = 0; i < _this.termlist.length; i++) {
const self = _this;
const ils = i
BIN.getBankBin(self.termlist[ils].cardNo).then(function(one) {
self.termlist[ils].bankName = one.bankName;
})
}
console.log(this.termlist);
}
})