我正在使用app-route和带有纸质工具栏的铁页来显示我的观点。
在我的一个视图中,main-view
显示随机选择的图像,每次加载页面时都会更改。每次从工具栏中选择main-view
时,页面都应重新加载,以便显示新图像。
问题是,如果我已经在/main-view
网址并且我从工具栏中选择了它,那么它不会刷新页面。有没有办法做到这一点?
答案 0 :(得分:1)
你绝对应该添加on-tap
来渲染新图像。您的图像不会发生变化,因为iron-pages
正在观察某个值(在selected
属性中指定),因此,当您单击主视图并且路径属性已经具有值" main- view",观察者不会触发。
在处理更改的元素上添加on-tap将使其始终触发。 一些简单的例子:
<iron-pages selected="{{route}}" attr-for-selected="name">
<example-element name="main-view" on-tap="handleClick" id="main"></example-element>
<another-element name="second-view"></another-element>
</iron-pages>
和handleClick
内部的功能如下:
handleClick: function() {
this.$.main.renderImage();
}
当然在main-view
元素中你可以声明renderImage
函数来处理剩下的逻辑
并且不要忘记进行一些去抖动,因为你不想在1秒钟内渲染20张新图像。您可以使用Polymer native debounce
函数
您可以在此处详细了解:https://www.polymer-project.org/1.0/docs/devguide/instance-methods