如果问题标题不清楚,我有一个网页带有一些“链接”部分,人们可以点击链接并转到同一模板上的某个元素。这并不一定意味着要更改URL。
我尝试的要点:
我尝试的要点:
<a href="#sectionA>Section A</a>
<a href="#sectionB>Section B</a>
<a href="#sectionC>Section C</a>
<br/>
<div id="sectionA">
<p> Content for A </p>
</div>
<div id="sectionB">
<p> Content for B </p>
</div>
<div id="sectionC">
<p> Content for C </p>
</div>
这种方法不起作用,因为点击链接会将我导航到baseUrl/#sectionA(不存在的路由),而不是页面所属组件的路由(baseUrl/currentPage#sectionA)。
第一种方法失败后,我尝试了以下方法:
<a href="currentPage#sectionA>Section A</a>
<a href="currentPage#sectionB>Section B</a>
<a href="currentPage#sectionC>Section C</a>
这实际上适用于当前页面,将用户滚动到currentPage上的部分;遇到的问题是当我们使用相同组件和模板的子路由时。基本上,导航到“baseUrl/currentPage”会带您进入一个空表单。例如,如果用户导航到“baseUrl/currentPage/1”,则我们期望填写ID为1的数据的表单已被填充。
我想要的是,用户可以在侧边栏菜单中点击一个锚点,以导航到currentPage和其参数化路由(currentPage/1、currentPage/31等)所使用的模板中的部分。重要的不是在URL中引用模板上的部分。我只关心父级和它的子级的导航方面是否可用。最好不要使用第三方angular插件。
非常感谢所有建议和意见。
编辑: 添加上下文的组件路由:
export const CurrentComponentRoutes: Route[] = [
{
path: 'currentPage',
component: CurrentComponent
},
{
path: 'currentPage/:ID',
component: CurrentComponent
}
];
以上路由被导出到主应用程序组件的路由中:
export const appRoutes: Routes = [
...CurrentComponentRoutes,
...OtherRoutes
];
export const routing: ModuleWithProviders = RouterModule.forRoot(approot);
导出路由,然后导入主要的app.module中。此外,我在index.html文件中设置了基础href。