如何检查是否需要返回组件?

时间:2019-09-11 12:31:52

标签: angular routing

我的布局由sidenav和路由器插座组成。根据路由器出口,侧面导航显示菜单项。我想导航并将正确的物品放到我的侧面导航中。但是当我使用浏览器中的go baack按钮时,我无法获得上一个项目

我已经将默认项目设置为ngOnInit函数,然后对url进行了一些检查以更改项目。 (这些项目存储在数组中)。我还有一个onClick函数,当单击某项以重定向并更改此sidenav上的项时会调用它

ngOnInit() {
    this.href = this.router.url;
    console.log('essai: '+this.href);
    if (this.href == '/alvin/home'){
        var a: Plateforme={id:null,nom:''};
        a.id = 1;
        a.nom = 'alerte';
        var b: Plateforme={id:null,nom:''};
        b.id= 2;
        b.nom='gestion';
        this.menus.push(a);
        this.menus.push(b);
    }
if (this.href == '/alvin/alerte'){
    this.id_support = JSON.parse(localStorage.getItem('currentUser')).id_support;
this.plateformeService.getPlateformeById(JSON.parse(localStorage.getItem('currentUser')).id_support)
.subscribe(menu => {
           this.menus.push(menus);
            });
}

 onClick(menu){
        this.shareData.sendClickCall(menu.id, menu.nom); // get the item clicked
        this.menus = []; // reset items array
        this.resClick = menu.nom;
        //console.log('clickres: '+ this.resClick);

        if (this.resClick == 'gestion') { 
        var a: Plateforme = {id:null, nom:''};
        var b: Plateforme = {id:null, nom:''};
        var c: Plateforme = {id:null, nom:''};
        var d: Plateforme = {id:null, nom:''};
        var e: Plateforme = {id:null,nom:''};
        a.nom = 'Utilisateurs';
        b.nom = 'Equipements';
        c.nom = 'Scripts';
        d.nom = 'Equipes';
        e.nom = 'Menus';
        this.menus.push(a);
        this.menus.push(b);
        this.menus.push(c);
        this.menus.push(d);
        this.menus.push(e);

        }else if (this.resClick == 'alerte') {

                this.plateformeService.getPlateformeById(JSON.parse(localStorage.getItem('currentUser')).id_support).subscribe( menus =>{
                this.menus.push(menus[0]);
                console.log(this.menus);
                });

                } else if (this.resClick == 'Utilisateurs' || this.resClick == 'Equipements' ||this.resClick =='Scripts' || this.resClick =='Equipes'){
                        this.router.navigate(['alvin/gestion/'+this.resClick])
                }


        }

为此,我通过单击进行导航。我想要的是当我使用浏览器的“返回”按钮时能够获得以前的物品。现在我有义务 o返回到/ alvin / home,然后重新加载页面以获取默认项,然后使用click进行导航。我希望能够在添加按钮之前先使用返回按钮。我希望我足够清楚。感谢您的帮助

0 个答案:

没有答案