2015-05-29 143 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)); 
},