Angular 2 - 链接到当前页面的元素

16
如果问题标题不清楚,我有一个网页带有一些“链接”部分,人们可以点击链接并转到同一模板上的某个元素。这并不一定意味着要更改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。


我所看到的唯一有效的方法是这个导航选项 - pe8ter
1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接