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