0

我正在使用digits-api进行登录。我正在使用附加的生命周期事件在附加上初始化脚本。

attached: function(){
         console.log("Attached")
         Digits.init({ consumerKey: '************' });
        }

然后单击按钮,用户可以登录。

onLoginButtonTap : function(){
        Digits.logIn().done(this.onLogIn).fail(this.onFail);
        },

当用户成功登录时,它将转到 onLogIn 函数。

onLogIn: function() {
            console.log("Login Successfull");
            this.loginStatus="Log Out"
        }

所以我正在做的是将纸张按钮内的文本从登录更改为注销。我有一个属性登录状态。

loginStatus:{
      type : String,
      value: "Log In",
      notify: true,
      reflectToAttribute: true
      }

当我尝试使用 this.loginStatus="Log Out" 更改 onLogIn 方法中的文本时。它说 Uncaught TypeError: Cannot set property 'loginStatus' of undefined。所以基本上我在其他代码中也看到了这一点。我无法在函数内部访问函数内部元素的 ID。这里的问题也是如此,我无法在函数内部更改函数中的属性值。我如何从这个问题中恢复过来。

<paper-button raised class="custom indigo" id="logIn">[[loginStatus]]</paper-button>
4

1 回答 1

0

错误消息表明thisundefined。在您的情况下,您应该在指定回调时绑定:this

Digits.logIn().done(this.onLogIn.bind(this)).fail(this.onFail.bind(this));
于 2016-10-09T23:29:08.767 回答