2015-05-29 68 views
0

当我点击它时,如何更改按钮内容? 在函数中,我可以更改绑定值吗?聚合物粘合值无法更改

<dom-module id="my-facebook-login-button"> 
<template> 
<paper-button on-click="facebookLogin">{{loginButton}}</paper-button> 
</template> 
</dom-module> 
<script> 
(function() { 
Polymer({ 
    is: 'my-facebook-login-button', 
    properties: { 
    loginButton: { 
     type: String, 
     value: 'Login with facebook', 
     notify: true 
    } 
    }, 
facebookLogin: function() { 
var ref = new Firebase("https://sizzling-heat-4021.firebaseio.com/"); 
ref.authWithOAuthPopup("facebook", function (error, authData) { 
if (error) { 
    console.log("Login Failed!", error); 
} else { 
    console.log("Authenticated successfully with payload:", authData);  
    app.user=authData; 
    this.loginButton='Loged in'; 
} 
}); 
}, 
}); 

})(); 
</script> 

this.loginButton = '在Loged' 不更改按钮的内容

+1

只是盲目的拍摄,'this.loginButton.value ='Loged in';'有效吗? – Cyrbil

+0

您是否尝试在'function(error,authdata)'中绑定'this'?像'function(){} .bind(this)'? –

回答

0

尼尔在他的评论是正确的答案。使用绑定。更新后的功能如下:

facebookLogin: function() { 
    var ref = new Firebase("https://sizzling-heat-4021.firebaseio.com/"); 
    ref.authWithOAuthPopup("facebook", function (error, authData) { 
    if (error) { 
     console.log("Login Failed!", error); 
    } else { 
     console.log("Authenticated successfully with payload:", authData);  
     app.user=authData; 
     this.loginButton='Logged in'; 
    } 
    }.bind(this)); 
},