Polymer Can';无法在dom if模板中按id查找节点

Polymer Can';无法在dom if模板中按id查找节点,polymer,polymer-1.0,polymer-starter-kit,Polymer,Polymer 1.0,Polymer Starter Kit,下载Polymer Starter工具包后,我在index.html中的dom绑定模板中(嵌套)了一个dom if模板,以在用户未经身份验证时隐藏整个UI。但是,如果元素使用app.$('#id')功能,则无法获取dom 我正在尝试访问app.closeDrawer函数(app.js)中的paperDrawerPanel 如何访问该元素 编辑1 这是html部分: ... <body unresolved> <span id="browser-sync-binding"

下载Polymer Starter工具包后,我在index.html中的dom绑定模板中(嵌套)了一个dom if模板,以在用户未经身份验证时隐藏整个UI。但是,如果元素使用app.$('#id')功能,则无法获取dom

我正在尝试访问app.closeDrawer函数(app.js)中的paperDrawerPanel

如何访问该元素

编辑1

这是html部分:

...
<body unresolved>
    <span id="browser-sync-binding"></span>
    <template is="dom-bind" id="app">

        <auth-login id="auth" user="{{user}}" is-authenticated="{{isAuthenticated}}"" location="https://i2bserver.firebaseio.com"></auth-login>

        <template is="dom-if" if="{{isAuthenticated}}">
            <paper-drawer-panel id="paperDrawerPanel" drawer-width="220px" responsive-width="1100px">
...
从文档中:

要在元素的本地DOM中定位动态创建的节点,请使用$$方法:

this.$$(选择器)

$$
返回本地DOM中与
选择器匹配的第一个节点

这意味着您必须添加一个
#
符号,以使用其
id
引用元素。你的代码

app.closeDrawer = function () {
  console.log(app.$$('paperDrawerPanel')); //returns null
};
如果是这样写的话应该可以用

app.closeDrawer = function () {
  console.log(app.$$('#paperDrawerPanel'));
};

element。$$
element
的DOM范围内查询。在您的例子中,
app
是一个模板,其任务是将DOM标记到封闭范围(
body


请尝试
document.querySelector(“#PaperDroperPanel”)

是否显示它们?不能查询不存在的元素,如果
dom if
表达式为false,则这些元素不存在。如果您需要使用此use hidden而不是dom-If.yes,则会显示它们(如果尝试访问元素时条件为true),请添加更多代码和htmlvery抱歉,但我已经在选择器中使用了#,只是忘了在本示例中输入。仍然不起作用。我来编辑
app.closeDrawer = function () {
  console.log(app.$$('paperDrawerPanel')); //returns null
};
app.closeDrawer = function () {
  console.log(app.$$('#paperDrawerPanel'));
};