scope variable - 为变量赋值时出错

时间:2017-07-07 01:59:52

标签: angular typescript

如何从函数回调中访问变量。我将在问题中更直接地展示示例

export class FormComponent {

  public pedidoSoft:PedidoSoft = new PedidoSoft();

  getBrandCard(){

       PagSeguroDirectPayment.getBrand({

            cardBin: this.pedidoSoft.numCard,
            success: function(response) {

                    this.pedidoSoft.bandCard = response.brand.name;

            },
            error: function(response) { },
            complete: function(response) { }
       });  

   }

我收到以下错误消息。当this.pedidoSoft.bandCard收到response.brand.name

的值时,会出现此错误

enter image description here

1 个答案:

答案 0 :(得分:4)

不要在TypeScript中使用function。请改为使用()=>{}语句替换它们。

        success: (response) => {
                this.pedidoSoft.bandCard = response.brand.name;
        },
        error: (response) => { },
        complete: (response) => { }

当您使用function() {}this不会持久()=>{}保留this引用。

您的选择是在函数上使用bind(this)