我正在构建一个Polymer(SPA)应用,并将ProductsController
个部分创建为iron-pages
。因为它们共享相同的<dom-module>
我想在某个页面上添加一些工具栏按钮,但不会在其他页面上显示它们。
在Polymer中,paper-toolbar
,ready
,created
和attached
函数会在应用加载时全部启动。是否会出现&#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>
答案 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" />
,ready
,created
和attached
函数外,还有一个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添加一个事件监听器,以通知您的自定义元素并更改工具栏。