[英]Angular2 Child Component browser refresh redirects to Parent Component
我的应用程序有2个父组件。
@Component({
selector: 'my-app',
directives: [ROUTER_DIRECTIVES],
template: `
<router-outlet></router-outlet>
`,
providers: [ROUTER_PROVIDERS]
})
@RouteConfig([
{ path : '/router/...', name:'Router', component: RoutingComponent, useAsDefault: true},
{ path : '/login', name:'Login', component: LoginComponent }
])
export class AppComponent implements OnInit{
constructor(
private _router: Router
){}
ngOnInit(){
if(localStorage.getItem("user")=== null) {
this._router.navigate(['Login']);
}
else{
console.log(" APP COMPONENT");
this._router.navigate(['/Router', 'RegisterClient']);
}
}
}
用户登录后,应用程序将重定向到Router的子组件,称为RegisterClient,因为它是应用程序的主页。 如果用户未登录,则该应用程序将重定向到LoginComponent。
我的路由器组件有很多子组件
@Component({
selector:'router',
directives: [ROUTER_DIRECTIVES],
templateUrl: 'app/routing.component.html',
providers: [AuthenticationService, MessageService]
})
@RouteConfig([
{ path : 'registerClient', name:'RegisterClient', component: RegisterClientComponent},
{ path : 'searchClient', name:'SearchClient', component: SearchClientComponent},
{ path : 'updateClient/:id', name:'UpdateClient', component: UpdateClientComponent},
{ path : 'registerMerchandise', name:'RegistMerc', component: RegisterMercComponent},
{ path : 'searchMerchandise', name:'SearchMerc', component: SearchMerchandiseComponent},
{ path : 'updateMerchandise/:id', name:'UpdateMerc', component: UpdateMercComponent},
{ path : 'registMaterial', name:'RegistMaterial', component: RegisterMaterialComponent},
{ path : 'searchMaterial', name:'SearchMaterial', component: SearchMaterialComponent},
{ path : 'updateMaterial/:id', name:'UpdateMat', component: UpdateMaterialComponent},
{ path : 'messages', name:'MessagesComponent', component: MessagesComponent}
])
问题是,当我使用任何子组件时,尝试使用F5或浏览器按钮刷新页面时,页面将刷新并始终重定向到RegisterClient组件,而我想刷新子组件并保留在同一页。
有人可以帮忙吗?
您已经在使用本地存储。
在刷新您的父代对ID的检查后,将一个ID放入本地存储,然后切换到右侧页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.