简体   繁体   English

使用meteor 访问Shadow DOM 聚合物元素

[英]Access Shadow DOM polymer elements with meteor

How do I access the paper-button with id='signin' outside of the Polymer constructor.如何在 Polymer 构造函数之外访问带有 id='signin' 的纸按钮。 I need to access it from Template.{template-name}.rendered method.我需要从 Template.{template-name}.rendered 方法访问它。 Is there a way to use selector for paper-button?有没有办法将选择器用于纸按钮?

    <!-- Code -->
    <dom-module id="app-bar">
    <template>

        <link rel="import" href="bower_components/iron-media-query/iron-media-query.html">
        <iron-media-query query="min-width: 1008px" query-matches="{{largeScreen}}">
        </iron-media-query>
        <template is="dom-if" if="{{largeScreen}}">
            <span class="separator">
                <link rel="import" href="bower_components/paper-button/paper-button.html">

            <paper-button id="signin" on-click="login" raised>Sign in</paper-button>
            </span>
        </template>
        <template is="dom-if" if="{{!largeScreen}}">
           <span class="title"></span>
        </template>
    </template>
    <script>
    Polymer({
        is: "app-bar",
        login: function() {
            FlowRouter.go('/login');
        }
    });
    </script>
</dom-module>


<!-- In the landing-page.html -->

<landing-page>
<link rel="import" href="app-bar.html">
<app-bar></app-bar>
</landing-page>

The easy, less prone way to breakage... (with shadowRoot you will potentially break in Polyfil'd browsers) get a reference to your 'app-bar' element and from there use the $ property id shortcut.简单、不易损坏的方法...(使用 shadowRoot 您可能会在 Polyfil 浏览器中损坏)获取对“app-bar”元素的引用,然后使用 $ 属性 id 快捷方式。 If you cannot find the element via [landing-page].querySelector('app-bar') then try Polymer.dom(landing-page-element.root).querySelector('app-bar').如果您无法通过 [landing-page].querySelector('app-bar') 找到该元素,请尝试 Polymer.dom(landing-page-element.root).querySelector('app-bar')。 ($ shortcut only works for elements given an ID in that particular elements template, so for your app-bar this will work with signin. It would not work if the elements/ids were generated by a dom-repeat though. ($ 快捷方式仅适用于在该特定元素模板中给定 ID 的元素,因此对于您的应用栏,这将与登录一起使用。如果元素/ID 是由 dom-repeat 生成的,则它将不起作用。

document.querySelector('landing-page').querySelector('app-bar').$.signin;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM