0
我试图实现使用下面的代码路由:聚合物路由 - 历史管理
HTML :
<app-location route="{{route}}"></app-location>
<app-route
route="{{route}}"
pattern="/etw/:page"
data="{{routeData}}"
tail="{{subroute}}"></app-route>
<iron-pages
selected="[[page]]"
attr-for-selected="name"
fallback-selection="view404"
role="main">
<my-view1 page="{{page}}" name="view1"></my-view1>
<my-view2 page="{{page}}" name="view2"></my-view2>
<my-view404 page="{{page}}" name="view404"></my-view404>
</iron-pages>
和脚本是:
static get observers() {
return [
'_routePageChanged(routeData.page)',
];
}
_routePageChanged(page) {
// Polymer 2.0 will call with `undefined` on initialization.
// Ignore until we are properly called with a string.
/*if (page === undefined) {
return;
}*/
// If no page was found in the route data, page will be an empty string.
// Deault to 'view1' in that case.
this.page = page || 'home';
document.body.scrollTop = document.documentElement.scrollTop = 0;
// Close a non-persistent drawer when the page & route are changed.
/*if (!this.$.drawer.persistent) {
this.$.drawer.close();
}*/
}
_pageChanged(page) {
// Load page import on demand. Show 404 page if fails
var resolvedPageUrl = this.resolveUrl('my-' + page + '.html');
Polymer.importHref(
resolvedPageUrl,
null,
this._showPage404.bind(this),
true);
}
一切工作正常,但是当我尝试第二次访问查看(view2)然后使用浏览器后退按钮。只有屏幕上的网址发生变化,但不是视图。我看着它,发现_routePageChanged(page)方法没有被调用。有任何想法吗?
一个奇怪的观察,我在运行Apache 2.4.23的远程服务器上遇到问题,但在本地主机上运行的Apache 2.4.18或Nginx上没有遇到问题。我不确定这些信息是否相关。