Angular 2侧边栏组件无法在路径导航中工作

时间:2017-07-26 18:47:59

标签: angular angular-components angular-router

当我在内部导航时,补充工具栏组件没有正确响应

当我从login.component.ts运行onSubmit时,它会转到仪表板/主页,' home'视图工作正常,我的侧边栏组件也加载,但是当我单击侧边栏项时,routerLink不起作用,也没有下拉。

在我login,component.ts上我做了一个简单的身份验证,成功后将转到仪表板路径

onSubmit(values){
    this.http.post('/user/authenticate', loginObj)
      .map((res) => res.json())
      .subscribe((res)=> {
        if(res.success == true){
          this.router.navigate(['/dashboard']);
        } else {
          ....
        }
}

并在我的 dashboard.component.html

<div id="wrapper" >
  <app-sidebar ></app-sidebar>
      <div id="page-wrapper" class="gray-bg">
         <app-header></app-header>
      <router-outlet></router-outlet>
     </div>
</div>

但主要的问题是,当我导航到这条路线时,我的补充工具栏组件不会渲染和链接不起作用。我在登录提交时尝试过甚至ngZone

this.zone.run(() => {
  this.router.navigate(['/dashboard']);
});

虽然这是我的 app.modules.ts

//setting up routes

const ROUTES = [
{
  path:'',
  redirectTo:'login',
  pathMatch:'full'
},
 {
   path:'login',
  component:LoginComponent
},{
  path:'dashboard',
    component:DashboardComponent,
  children:[
{
  path:'contacts',
  component:ContactsComponent
},{
  path:'home',
  component:HomeComponent,
}]
}];

和我的 app.component.ts

<router-outlet></router-outlet>

但它甚至不起作用,我尝试了很多解决方案并检查网络,找不到合适的答案。问题是我的侧栏组件没有工作

预期行为

我希望当我在内部导航到仪表板路线时,我的组件应该正常工作并且能够快速响应。

2 个答案:

答案 0 :(得分:1)

将此脚本放在侧边栏组件中...然后尝试加载..

ngOnInit() {
    $(document).ready(() => {
      const trees: any = $('[data-widget="tree"]');
      trees.tree();
    });
  }

答案 1 :(得分:0)

很遗憾,您没有发布组件代码。我假设http帖子来自您的登录组件。我认为问题在于您<router-outlet></router-outlet>的位置。它应该放在您拥有this.router.navigate(['/dashboard']);的组件的html中。在您的情况下,登录组件。