我在Polymer上建立这个网站,而且我在管理go' back'由于一些奇怪的app-route行为。
这是一个简单的网站,由3个级别的深度和2种语言(西班牙语和英语)组成。该网站显示了一些建筑项目及其详细信息以及其他一些关于设计师的部分,因此路线是这样的:
/#/ lang / section /(用于一般导航)
/#/ lang / section / projectId(用于查看项目详细信息时)
我在我的主app元素中使用了1 app-location
和3 app-route
,如下所示:
<app-location route="{{route}}" use-hash-as-path></app-location>
<app-route
route="{{route}}"
pattern="/:language"
data="{{languageData}}"
tail="{{languageSubRoute}}"></app-route>
<app-route
route="{{languageSubRoute}}"
pattern="/:section"
data="{{sectionData}}"
tail="{{sectionSubRoute}}"></app-route>
<app-route
route="{{sectionSubRoute}}"
pattern="/:projectName"
data="{{projectData}}"></app-route>
我将项目ID(当有一个)传递给负责显示网格中所有项目的子视图,当单击一个时,主应用程序位置上有一个href更改,因此更改会向下传播显示视图和项目详细信息,如下所示:
<projects-view name=" [[_getSectionByLanguage(languageData,'Projects')]]"
language="[[languageData.language]]"
displayed-project="[[projectData.projectName]]">
我可以选择一个项目并显示其详细信息,但没有问题,但是当我回到&#39;在路由(例如/#/ en / projects)上,来自第三个projectData
的{{1}}变量不会变为空,因此项目详细信息仍然可见。但是,如果我回去然后刷新页面,一切正常。
我在我的主app元素中观察最上面的路径变量,并在发生任何变化时打印子路径。
输出:
app-route
正如您所看到的,即使第三个languageSubRoute: {"prefix":"/en","path":"/projects","__queryParams":{}}
sectionData: {"section":"projects"}
sectionSubRoute: {"prefix":"/en/projects","path":"","__queryParams":{}}
projectData: {"projectName":"Some Project"}
处的模式不匹配,数据对象(projectData)也不会变为空
怎么回事?