Polymer 在就绪函数调用时,domHost的signedIn属性为false
我想检查用户是否登录到元素创建中,如果用户没有登录,则最终重定向他。问题是domHost.signedIn属性为false,即使用户是signedIn。如果我稍后检查该属性(例如,当我使用按钮点击调用函数时),该属性应为true 代码如下:Polymer 在就绪函数调用时,domHost的signedIn属性为false,polymer,firebase-authentication,Polymer,Firebase Authentication,我想检查用户是否登录到元素创建中,如果用户没有登录,则最终重定向他。问题是domHost.signedIn属性为false,即使用户是signedIn。如果我稍后检查该属性(例如,当我使用按钮点击调用函数时),该属性应为true 代码如下: <link rel="import" href="../bower_components/polymer/polymer.html"> <link rel="import" href="/bower_components/paper-bu
<link rel="import" href="../bower_components/polymer/polymer.html">
<link rel="import" href="/bower_components/paper-button/paper-button.html">
<dom-module id="settings-view">
<template>
<style>
</style>
TODO: user settings
<paper-button on-tap="debugFunction">button</paper-button>
</template>
<script>
Polymer({
is: 'settings-view',
ready: function () {
console.log(this.domHost.signedIn); // false
console.log(this.domHost.user); // null
},
debugFunction: function () {
console.log(this.domHost.signedIn); // true
console.log(this.domHost.user); // user object
}
});
</script>
</dom-module>
TODO:用户设置
按钮
聚合物({
是:“设置视图”,
就绪:函数(){
console.log(this.domHost.signedIn);//false
console.log(this.domHost.user);//null
},
debugFunction:function(){
console.log(this.domHost.signedIn);//true
console.log(this.domHost.user);//用户对象
}
});
检查用户是否在子元素中签名的最佳方法是什么?将signedIn值设置为iron meta element是更好的方法吗
谢谢,Jan你最好在上面声明属性。只要属性的值不是
未定义的
,观察者就会执行该函数。因此,您的代码将如下所示:
TODO:用户设置
聚合物({
是:“设置视图”,
特性:{
签名人:{
类型:布尔型,
观察员:“"签名已更改"”
},
用户:{
类型:对象,
观察者:“\u userChanged”
},
},
_SignedChanged:函数(newSignedValue){
console.log(newSignedValue);//true
console.log(this.signedIn);//true
},
_userChanged:函数(newUserValue){
console.log(newUserValue);//用户对象
console.log(this.user);//用户对象
}
});
然后,当您通过JavaScript或数据绑定更新那些
signedIn
和user
值时,观察者将调用相关函数。您最好在声明属性时使用它们。只要属性的值不是未定义的
,观察者就会执行该函数。因此,您的代码将如下所示:
TODO:用户设置
聚合物({
是:“设置视图”,
特性:{
签名人:{
类型:布尔型,
观察员:“"签名已更改"”
},
用户:{
类型:对象,
观察者:“\u userChanged”
},
},
_SignedChanged:函数(newSignedValue){
console.log(newSignedValue);//true
console.log(this.signedIn);//true
},
_userChanged:函数(newUserValue){
console.log(newUserValue);//用户对象
console.log(this.user);//用户对象
}
});
然后,当您通过JavaScript或数据绑定更新那些
signedIn
和user
值时,观察者将调用相关函数。感谢您的回答,但存在一个问题,即首先使用false和null值调用_signedChanged和_userChanged函数,然后使用true和user对象调用。如果signedIn的值为false,我想将用户重定向到登录页面。所以这并不能解决我的问题,因为我会在第一次函数调用中重定向它们。我试图将默认值设置为true,但没有帮助。感谢您的回答,但有一个问题是_signedChanged和_userChanged函数首先使用false和null值调用,然后使用true和user对象调用。如果signedIn的值为false,我想将用户重定向到登录页面。所以这并不能解决我的问题,因为我会在第一次函数调用中重定向它们。我试图将默认值设置为true,但没有帮助。谢谢