Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在同一导航上重新加载路由器组件单击导航上的刷新页面单击_Javascript_Angular_Angular7_Angular Routing - Fatal编程技术网

Javascript 在同一导航上重新加载路由器组件单击导航上的刷新页面单击

Javascript 在同一导航上重新加载路由器组件单击导航上的刷新页面单击,javascript,angular,angular7,angular-routing,Javascript,Angular,Angular7,Angular Routing,我有一个带有navbar的页面,它使用延迟加载加载子组件。现在,当我尝试单击同一页面/url的nav时,angular什么也不做(这是默认行为)。我需要重新加载nav,这样,如果用户在页面上选择了任何过滤器,它们将被清除。从而在导航栏上提供刷新功能 我在ameurlnavigation上使用了:“reload”,但它不起作用 我的父路由文件app routing.module.ts const routes: Routes = [ { path: 'option1', loadChildr

我有一个带有
navbar
的页面,它使用延迟加载加载子组件。现在,当我尝试单击同一页面/url的
nav
时,angular什么也不做(这是默认行为)。我需要重新加载
nav
,这样,如果用户在页面上选择了任何过滤器,它们将被清除。从而在导航栏上提供刷新功能

我在ameurlnavigation上使用了
:“reload”,但它不起作用

我的父路由文件app routing.module.ts


const routes: Routes = [
  { path: 'option1', loadChildren: './featureModules/option1/option1.module#option1Module', canActivate:[ActivateRouteGaurd]   },                                            
  { path: 'option2', loadChildren: './featureModules/option2/option2.module#option2Module', canActivate:[ActivateRouteGaurd]   },
]

@NgModule({
  imports: [RouterModule.forRoot(routes, { useHash: true, onSameUrlNavigation: 'reload' })],
  exports: [RouterModule]
})
const routes: Routes = [
  { path: 'nav1', component: Nav1Component },
  { path: 'nav1/details/:id', component: ViewComponent }, 
  { path: 'nav2', component: Nav2Component },
  { path: 'nav2/details/:id', component: ViewComponent},
  { path: 'nav3', component: Nav3Component },
  { path: 'nav3/add', component: AddComponent },
  { path: '', redirectTo: 'user', pathMatch: 'full' }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
我的孩子看起来像这样选项1路由.module.ts


const routes: Routes = [
  { path: 'option1', loadChildren: './featureModules/option1/option1.module#option1Module', canActivate:[ActivateRouteGaurd]   },                                            
  { path: 'option2', loadChildren: './featureModules/option2/option2.module#option2Module', canActivate:[ActivateRouteGaurd]   },
]

@NgModule({
  imports: [RouterModule.forRoot(routes, { useHash: true, onSameUrlNavigation: 'reload' })],
  exports: [RouterModule]
})
const routes: Routes = [
  { path: 'nav1', component: Nav1Component },
  { path: 'nav1/details/:id', component: ViewComponent }, 
  { path: 'nav2', component: Nav2Component },
  { path: 'nav2/details/:id', component: ViewComponent},
  { path: 'nav3', component: Nav3Component },
  { path: 'nav3/add', component: AddComponent },
  { path: '', redirectTo: 'user', pathMatch: 'full' }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
我在这方面搜索了很多,但似乎没有任何效果。我不确定这是否可以从组件实现,因为
navbar
是一个不同的组件,并且包含在组件中


感谢您的帮助。提前谢谢

谢谢大家的帮助。利用你的想法,我找到了一个解决办法

    const that = this;
    const path = this.location.path();
    $('.navbar-nav li.nav-nav1').on('click', function (e) {
      that.router.navigateByUrl('/', {skipLocationChange: true}).then(() =>
          that.router.navigate([path])
      );
    });

This is taking my page to other url and then to my url which tricks angular to reload the component. 
这个方法怎么样

<a [routerLink]="path" (click)="reload()">aaa</a>
<router-outlet *ngIf="view"></router-outlet>

你能在stackblitz.com上添加最小的、可复制的示例吗?stackblitz对我来说是受限的。试试plnk,或者你试过使用JavaScript的
location.reload()
方法吗?有关文档,请参阅。似乎有此问题的待决议题。管线会重新加载,但组件不会。这是jQuery中的Angular吗?