在我的Angular应用程序中,我希望用户只能从根URL( accessor: d => { d.DATE_FIELD ?
d.DATE_FIELD
return Moment(d.DATE_FIELD)
.local()
.format("DD-MM-YYYY hh:mm") : ""
}
)加载它。
如果用户在浏览器中尝试其他任何URL,则应立即将其重定向到根URL。
但是,应用中的类重定向(例如/
应该可以正常工作
我该怎么做?
目前,我在this post中看到了this.router.navigate(['some-url'])
,但也许有更简单的技巧可以实现这一目标。
感谢您的想法。
答案 0 :(得分:1)
您只需在您的app.module构造函数中添加一个router.navigateByUrl('/'),因此无论它们做什么,当应用程序加载它们时都可以。或者,您可以在sessionStorage中创建一个包含值的变量,例如sessionStorage.setItem('userOnline', true)
,然后在OnInit中检查该值。由于会话存储在选项卡关闭时被破坏,因此如果直接在浏览器导航栏上放置任何路由,则它们可以进行路由导航,但只有在它们已经加载了应用程序的情况下,才可以进行导航。应用加载会重定向到“ /”。
这个想法的任何变体,都可以并且应该起作用。一定要问我是否迷路了!
答案 1 :(得分:0)
接受的答案是不好的做法,恕我直言
您应该尝试以下路由模块:
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { BarComponent } from '@components/bar.component';
const routes: Routes = [
{
path: '**',
redirectTo: '',
},
{
path: '',
component: BarComponent,
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
})
export class FooRoutingModule { }