Polymer 使用聚合物和应用程序路线在每次单击时重新加载页面
我正在使用带有纸张工具栏的app route和iron页面来显示我的视图 在我的一个视图中,Polymer 使用聚合物和应用程序路线在每次单击时重新加载页面,polymer,Polymer,我正在使用带有纸张工具栏的app route和iron页面来显示我的视图 在我的一个视图中,主视图,显示一个随机选择的图像,该图像在每次加载页面时都会更改。每次从工具栏中选择main view,页面都应重新加载,以便显示新图像 问题是,如果我已经在/main viewurl,并且我从工具栏中选择了它,它不会刷新页面。有什么方法可以做到这一点吗?你一定要在点击时添加,来渲染新图像。您的图像不会更改,因为iron pages正在观察某个值(在selectedproperty中指定),因此,当您单击主
主视图
,显示一个随机选择的图像,该图像在每次加载页面时都会更改。每次从工具栏中选择main view
,页面都应重新加载,以便显示新图像
问题是,如果我已经在
/main view
url,并且我从工具栏中选择了它,它不会刷新页面。有什么方法可以做到这一点吗?你一定要在点击时添加,
来渲染新图像。您的图像不会更改,因为iron pages
正在观察某个值(在selected
property中指定),因此,当您单击主视图时,路由属性已经具有值“main view”,观察者将不会触发
在处理更改的元素上添加点击将使其始终触发。
一些简单的例子:
<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>
当然,在主视图
元素中,您可以声明渲染
函数,该函数将处理其余的逻辑
不要忘了做一些去模糊处理,因为你不想在一秒钟内渲染20个新图像。您可以使用Polymer nativedebounce
功能
你可以在这里了解更多信息:你不应该做“硬重新加载”,因为应用程序路径
是围绕一个新的应用程序设计的。相反,如果selectedView==“main view”
,您应该观察您的selectedView
道具并触发新的图像提取。此外,您还可以在工具栏的主视图按钮上点击添加一个,
,并在点击时重新蚀刻&&selectedView==“main view”
,这样即使在同一页面上,它也会重新加载-您可以与用户共享一个fiddle/JS bin吗?
handleClick: function() {
this.$.main.renderImage();
}