如何检测聚合物页面部分何时显示?

时间:2015-08-12 08:48:49

标签: polymer polymer-1.0

我正在构建一个Polymer(SPA)应用,并将ProductsController个部分创建为iron-pages。因为它们共享相同的<dom-module>我想在某个页面上添加一些工具栏按钮,但不会在其他页面上显示它们。

在Polymer中,paper-toolbarreadycreatedattached函数会在应用加载时全部启动。是否会出现&#39;页面的事件&#39;或者&#39;页面将消失&#39;所以我可以添加该页面独有的工具栏按钮,然后在页面更改后再次删除它们?这是我到目前为止所拥有的:

Index.html代码段

detached

page-home.html页面

<main class="content">
  <iron-pages attr-for-selected="data-route" selected="login" >
    <!-- login page -->
    <section data-route="login">
      <page-login></page-login>
    </section>
    <!-- home page -->
    <section data-route="home">
      <page-home></page-home>
    </section>
  </iron-pages>
</main>

2 个答案:

答案 0 :(得分:7)

除了Polymer 1.0中的<aop:aspectj-autoproxy> <aop:include name="UpdateUIMetadataInterceptor" /> </aop:aspectj-autoproxy> <bean id="updateUI" class="com.fico.cardinal.cm.interceptor.UpdateUIMetadataInterceptor" /> readycreatedattached函数外,还有一个detached函数,您可以使用此功能检测页面属性类已更改为attributeChanged

iron-selected

答案 1 :(得分:3)

iron-pages实现了IronSelectableBehavior。

这意味着当项目被设置/取消设置为选中时,会抛出'iron-select'和'iron-deselect'事件。

没有理由将元素作为直接子元素。您可以简单地使用自定义元素。

<main class="content">
  <iron-pages attr-for-selected="data-route" selected="login" >
    <!-- login page -->
      <page-login data-route="login"></page-login>
    <!-- home page -->
      <page-home data-route="home"></page-home>
  </iron-pages>
</main>

然后理解这些元素是为了作为iron-pages元素的子元素而构建的,使用DOM访问器来获取父元素,这将是铁页面标记。然后为iron-select和iron-deselect添加一个事件监听器,以通知您的自定义元素并更改工具栏。