【问题标题】:Angular2 Child Component browser refresh redirects to Parent ComponentAngular2子组件浏览器刷新重定向到父组件
【发布时间】:2016-12-28 20:00:26
【问题描述】:

我的应用程序有 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']);
        }
    }
}

当用户登录时,应用程序重定向到路由器的子组件,称为 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 组件,我想刷新子组件和留在同一页面。

有人可以帮忙吗?

【问题讨论】:

  • 首先)检查父组件内的“”指令,该指令应该呈现子组件或主组件,以防您不应该更深入。其次)检查默认路径,在某些“默认”情况下可能会进行一些重定向。第三)检查所有处理路由的导入。第四)小心处理ngOnInit(),也许它有一些错误的行为:导航[...]路径可用,确切的路线等建议)))检查这个:angular-2-training-book.rangle.io/handout/routing/…

标签: angular typescript angular2-routing


【解决方案1】:

您已经在使用本地存储。

在刷新您的父母检查该 ID 后将 ID 放入本地存储中,然后切换到正确的页面。

【讨论】:

    猜你喜欢
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多