#angular
#angular
Вопрос:
У меня есть объявление переменной, как показано ниже
export class AppComponent implements OnInit {
// constructor() { }
config = {
// replace this key with yours
publicKey: "test_public_key_dc74e0fd57cb46cd93832aee0a390234",
productIdentity: "1234567890",
productName: "Drogon",
productUrl: "http://gameofthrones.com/buy/Dragons",
eventHandler: {
onSuccess(payload) {
// hit merchant api for initiating verfication
console.log(payload);
this.handleSuccessResponse(payload);
},
// onError handler is optional
onError(error) {
// handle errors
console.log(error);
},
onClose() {
console.log("widget is closing");
}
}
};
checkout = new KhaltiCheckout(this.config);
ngOnInit() {}
khaltiCheckout() {
this.checkout.show({ amount: 1000 });
}
handleSuccessResponse(payload) {
console.log(payload);
}
handleErrorResponse(payload) {
console.log(payload);
}
}
Здесь this.generateAlphaNumericValue(10) был успешно вызван, но функция this.handleSuccessResponse(полезная нагрузка) выдает ошибку как неопределенную функцию.
Как я могу вызвать это.handleSuccessResponse(полезная нагрузка) при успешном событии.
Комментарии:
1. Могу ли я увидеть код, где и как именно вы вызываете
onSuccess
функцию?2. Напрямую передать функцию refrerence, т.е.
onSuccess = this.handleSuccessResponse"
или Использовать функцию arror, т.е.onSuccess => (payload) > { this.handleSuccessResponse(payload); },
3. @PankajParkar Я обновил код. Можете ли вы это проверить.
4. @Satpal прав, вы можете использовать функцию со стрелкой для хранения контекста класса компонента внутри
onSuccess
функции.5. @Satpal onSuccess — это функция обратного вызова. Я не могу ни назначить, ни использовать функцию стрелки. Я должен вызвать функцию из функции onSuccess .
Ответ №1:
this.successR(payload);
отсутствует в области видимости конфигурации, теряется из-за внутренней функции, поэтому измените ее следующим образом,
export class AppComponent implements OnInit {
constructor() {
// Change
var self = this;
config = {
// replace this key with yours
publicKey: "test_public_key_dc74e0fd57cb46cd93832aee0a390234",
productIdentity: "1234567890",
productName: "Drogon",
productUrl: "http://gameofthrones.com/buy/Dragons",
eventHandler: {
onSuccess(payload) {
// Change
self.successR(payload);
},
// onError handler is optional
onError(error) {
// handle errors
console.log(error);
},
onClose() {
console.log("widget is closing");
}
}
};
checkout = new KhaltiCheckout(this.config);
}
}