Angular / Angular2,刷新组件来自routerLink(NavBar),如果已经在现有路由中

时间:2017-10-05 10:45:32

标签: javascript angular angular2-routing

如果我在同一条路线上,我再次从导航栏点击。它没有做任何事情。

如何从导航栏本身刷新我的组件。 routerLink中是否有任何方法。

<li [routerLinkActive]="['active']"><a [routerLink]="['/campaigns']">Creative</a></li>
<li [routerLinkActive]="['active']"><a [routerLink]="['/market-survey']">Survey</a></li>

再次点击意味着,假设您单击广告素材(在我的示例中)将激活相应的路线并加载组件。然后我再次点击广告素材。我希望该组件应该刷新

1 个答案:

答案 0 :(得分:1)

这可以通过创建另一个组件

来解决
  

refresh.component.ts

   import { Component, OnInit } from '@angular/core';
   import {Router, ActivatedRoute, Params} from '@angular/router';

   @Component({
     selector: 'app-refresh',
     template: `
       <p>
         refresh Works!
       </p>
     `,
     styles: []
   })
   export class RefreshComponent implements OnInit {

     constructor(private activatedRoute:ActivatedRoute,private route:Router) { }

     ngOnInit() {
       this.activatedRoute
           .queryParams
           .subscribe(params => {                
             if(params.url){
               this.route.navigate([params.url]);
             }
           });
     }

   }

app.routing

{path:'refresh',component:RefreshComponent},

我的新导航li是

   <li [routerLinkActive]="['active']"><a [routerLink]="['/refresh']" [queryParams]="{url:'campaigns'}" skipLocationChange="true">My AMP Creative</a></li>