简体   繁体   English

加载routerLink已经加载的Angular组件

[英]Loading Angular component that was already loaded by routerLink

If a page or component is already loaded by a user clicking a routerLink in the main menu, how can I repeat same process if a user clicks that router link again? 如果用户单击主菜单中的routerLink已经加载了页面或组件,那么如果用户再次单击该路由器链接,如何重复相同的过程? Clicking a router link that has already been clicked has no effect. 单击已单击的路由器链接无效。

<ul class="nav navbar-nav" id="menu">        
    <li class="nav-item" id="signup-link"><a class="nav-link" routerLink="signup">Sign up</a></li>
    ...

Best practice is to call a function when the li component is being clicked and in that function you will reinitialize the component's properties. 最佳实践是在单击li组件时调用一个函数,然后在该函数中重新初始化组件的属性。

<ul class="nav navbar-nav" id="menu">        
    <li (click)="reInit()" class="nav-item" id="signup-link"><a class="nav-link" routerLink="signup">Sign up</a></li>
    ...

And the component file: 和组件文件:

@Component({
        ....
});
export class MyComponent {
        private property;
        reInit() { // this will reinitialize property
            this.property = null; // or 0 or [] etc.
        }

        setProperty(value) { // this will alter property
            this.property = value;
        }
        ...
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM