1

Polymer Starter Kit をダウンロードした後、ユーザーが認証されていない場合に UI 全体を非表示にするために、index.html の dom-bind テンプレート内に (ネストされた) dom-if テンプレートを含めました。しかし、 app.$$('#id') 機能を使用して dom-if 要素を取得できません。

app.closeDrawer 関数 (app.js) で paperDrawerPanel にアクセスしようとしています。

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

その要素にアクセスするにはどうすればよいですか?

編集 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">
...

編集 2

app.closeDrawer が routing.html によって呼び出された瞬間に、dom-if 要素は既に改ざんされているはずです。

app.closeDrawer (PSK のrouting.html) を呼び出すコードは次のとおりです。

function closeDrawer(ctx, next) {
  app.closeDrawer();
  next();
}

// Routes
page('*', scrollToTop, closeDrawer, function(ctx, next) {
  next();
});
4

2 に答える 2

1

element.$$の DOM スコープ内のクエリelement。あなたの場合、appDOMを囲んでいるスコープ(body)にスタンプすることを仕事とするテンプレートです。

試してみてくださいdocument.querySelector('#paperDrawerPanel')

于 2016-02-14T10:27:20.353 に答える