无法从处理程序内部访问作用域的作用域变量:函数

时间:2019-03-02 07:20:32

标签: angular

内部
feature_arr

没有变量是可访问的,例如我定义了paymentId:Number = 11;但是在警报消息中的该函数内部,它显示为未定义。我也称函数成功,但它不能将其识别为函数。毫无疑问,该代码块是正确的,因为它正确显示了response.razorpay_payment_id。处理程序外部的变量(例如键和数量)可以使用,但是在函数内部,即使在该函数运行时,它们也都不确定或无法识别。

handler': function(response: any) {
          alert(response.razorpay_payment_id);
            alert(this.paymentId);
            this.success();
        },

1 个答案:

答案 0 :(得分:0)

您应该使用arrow函数=>来维护this的范围。

 this.options = {
    'key': this.clientKey,
    'amount': this.singleInvoiceDetail.total_amount*100,//'2000', // 2000 paise = INR 20
    'name': 'KudosHub',
    'description': 'payment',
    'image': 'theme/images/logo.svg',
    'handler': (response: any) => {
      alert(response.razorpay_payment_id);
        alert(this.paymentId);
        this.success();
    },
    'prefill': {
        'name': this.userDetail.first_name+" "+this.userDetail.last_name,
        'email': this.userDetail.email,
    },
    'notes': {
        'address': ''
    },
    'theme': {
        'color': '#F37254'
    }
  };