gpt4 book ai didi

javascript - Polymer - 从父级获取一个元素

转载 作者:行者123 更新时间:2023-11-29 21:05:53 26 4
gpt4 key购买 nike

我有一个可以使用 firebase 登录的应用程序。我正在为此使用 polymerfire。有一个主要的应用程序元素:my-app 有这些 child :

<firebase-app
auth-domain="my-app-ID.firebaseapp.com"
database-url="https://my-app-ID.firebaseio.com"
api-key="my-app-apikey">
</firebase-app>
<firebase-auth
id="auth"
user="{{user}}"
status-known="{{statusKnown}}"
provider="google"
on-error="handleError">
</firebase-auth>

<iron-pages selected="{{page}}" attr-for-selected="name">
<my-loading name="loading"></my-loading>
<my-home name="home"></my-home>
<my-dashboard name="dashboard"></my-dashboard>
</iron-pages>

pagefirebase-auth 元素的 statusKnownuser 属性而变化。当 statusKnownfalse 时,loading 页面可见。当 statusKnowntrue 时,它选择 home 屏幕,当 usernull 或用户 dashboard

  _signInChanged(statusKnown) {
if(this.statusKnown) {
if(this.user) {
this.page = "dashboard"
} else {
this.page = "home"
}
} else {
this.page = "loading"
}
}

home 屏幕有一个登录按钮,点击后必须调用 firebase-auth 函数 signInWithPopup()。但是不能从 my-home 元素访问 firebase-auth 元素。它无法通过 document.getElementByID 找到或作为属性传递。或者以某种方式访问​​ if 使用父指针 this.parentElement.$.auth.signInWithPopup()

我怎样才能从 child 那里得到 auth 元素?

最佳答案

你可以用不同的方式来做。多亏了事件和监听器,您将能够将一些事件传播给父元素,然后在父元素中使用 this.$.auth 访问 firebase-auth。

所以:

my-home 元素中,当您准备调用 firebase 身份验证时,只需调用类似:this.fire("logIn"); 并在 parent-elemet 中在 ready 函数中这样写:

this.addEventListener("logIn", function() {
this.$.auth.signInWithPopup();
}.bind(this));

就是这样。

关于javascript - Polymer - 从父级获取一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44110292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com