为什么在其网站上<a href="#"> refresh the whole page in Angular 4

时间:2017-04-27 13:51:35

标签: javascript html angular

I am learning Angular 4.0 from this tutorial。我可以运行示例,但是当我想使用boostarp添加模拟下拉列表时,我的项目中遇到了问题。让我们来看看细节:

APP-routing.module.ts:

const routes: Routes = [
{ path: '', redirectTo: 'mission', pathMatch: 'full' },
{ path: 'user', component: SlUserPanelComponent },
{ path: 'mission', component: SlMissionPanelComponent }
]
@NgModule({
    imports: [ RouterModule.forRoot(routes) ],
    exports: [ RouterModule ]
})
export class AppRoutingModule {}

当键入&#39; http:// localhost:3000&#39;在浏览器中,页面将重定向到&#39; http:// localhost:3000 / mission&#39;并展示一切。

然后我将以下代码添加到对应于&#39; / mission&#39;的html中,然后单击超链接,浏览器将返回到&#39; http:// localhost:3000&#39;并重定向到&#39; http:// localhost:3000 / mission&#39;再次。这不是我的预期,据我所知,它不应刷新页面,只需在点击后显示下拉列表。

<div class="collapse navbar-collapse">
  <ul class="nav navbar-nav navbar-left">
    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">
        <i class="fa fa-globe"></i>
        <b class="caret"></b>
        ......
      </a>
    </li>
    <li>
    </li>
  </ul>
</div>

我不知道为什么以及如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

以下应该工作
 <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown">

答案 1 :(得分:0)

正如您所见,任何角度应用都会有一条路径

http://localhost:3000/#/home

使用时

<a href="#">

您的路径将导航到

http:localhost/3000/#/home#

这是一个新路由,angular尝试将此路由映射到任何可用路由。所以你的应用程序刷新