【问题标题】:Why is the default router always loaded?为什么总是加载默认路由器?
【发布时间】:2018-09-25 13:47:44
【问题描述】:

我制作了 3 个页面和导航菜单。点击菜单朋克页面后重新加载。

tpl:

<a (click)="toLogin()">Login</a> |
<a (click)="toHome()">Home</a> | 
<a (click)="toCatalog()">Catalog</a>       
<router-outlet></router-outlet>

组件:

toLogin() {
  location.href = '/#/login';
  location.reload();
}

toHome() {
  location.href = '/#/home';
  location.reload();
}

toCatalog() {
  location.href = '/#/catalog';
  location.reload();
}

结果我得到的不是 SPA 应用程序,而是 Angular 包。路由工作正常。

问题如下: 在构建和部署之后,用户没有机会在页面上行走。路由器总是重定向到默认地址

路由器:

imports: [
  RouterModule.forRoot([
    { path: '', redirectTo: '/login', pathMatch: 'full'},
    { path: 'login', component: LoginViewComponent },
    { path: 'home', component: HomeViewComponent },
    { path: 'catalog', component: CatalogViewComponent },
    { path: '**', redirectTo: 'login' }
  ], { useHash: true })
],

请帮助修复构建路由。

LIVE DEMO is here

重要提示:每次点击菜单后我都需要重新加载页面

【问题讨论】:

  • 为什么你不使用routerLink(angular.io/api/router/RouterLink) 进行导航?
  • 有一个原因)我需要为我的自定义小部件重新加载页面。
  • 好的,你得到了答案,记住你正在制作单页应用程序,所以你的小部件应该在组件加载时初始化。
  • @KirkLarkin 导航不适用于 BUILD

标签: javascript angular routing


【解决方案1】:

你应该使用 routerLink:

<div class="container">
    <a [routerLink]="['/login']" (click)="toLogin()">Login</a> |
    <a [routerLink]="['/home']" (click)="toHome()">Home</a> | 
    <a [routerLink]="['/catalog']" (click)="toCatalog()">Catalog</a> 
    <router-outlet></router-outlet>
</div>

点击事件用于触发其他用途。

【讨论】:

  • 谢谢,但每次点击后我都需要重新加载页面
  • 在每次路由更改时,您注入组件以查看并刷新它,添加 ngOnInit() 和 console.log 一些东西,每次切换到它时,console.log 都会被调用。
猜你喜欢
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 2020-04-21
  • 1970-01-01
  • 2018-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多