Если вы пытаетесь получить доступ к значению вне области действия внутренней функции, вам следует использовать функции стрелок. Вместо:
responseHandler: function(BOLT) {
if (BOLT.response.txnStatus != "CANCEL") {
this.updatePaymentInfo(BOLT.response);
} else { alert(BOLT.response); }
return BOLT.response;
}
...
используйте функции стрелок, чтобы вы могли получить доступ к внешнему объекту this
:
responseHandler: (BOLT) => {
if (BOLT.response.txnStatus != "CANCEL") {
this.updatePaymentInfo(BOLT.response);
} else { alert(BOLT.response); }
return BOLT.response;
}
...
В противном случае this
будет относиться к самой анонимной функции вместо того, чтобы ссылаться на класс, в котором он сейчас находится.
Если по какой-либо причине вы используете ECMAScript 3 или более раннюю версию, вам придется сохранить this
в переменной, прежде чем использовать ее внутри своей функции, потому что Функции стрелок не существовали в этих версиях (поскольку мы говорим о Angular 9, я думаю, что это вряд ли так):
var _this = this;
var Handlers = {
responseHandler: function(BOLT) {
if (BOLT.response.txnStatus != "CANCEL") {
_this.updatePaymentInfo(BOLT.response);
} else { alert(BOLT.response); }
return BOLT.response;
}
...