Angular侧菜单的哪种架构?

时间:2019-07-10 11:10:20

标签: angular navigateurl angular-routerlink

我正在尝试为Angular项目制作侧面菜单。我从firebase检索数据,但是我不知道我的体系结构是否正确。

我使用选择器app-serie-list制作了一个组件:

<li routerLinkActive="active" *ngFor="let serie of series; let i = index">
      <a routerLink="series/view/{{i}}">{{serie.title}}-{{i}}</a>
</li>

并且我已经像这样集成到app.component.html中:

<app-header></app-header>
<div class="row">
  <div class="col-sm-2">
    <app-serie-list></app-serie-list>
  </div>
  <div class="col-sm-10">
    <div class="container">
      <router-outlet></router-outlet>
    </div>
  </div>
</div>

目前,我不知道我的app-serie-list组件是否位于正确的位置。我必须将其放入路由器出口中的组件中吗?

当显示app-serie-list组件时,它会更改我的Web浏览器的url,但不会更改显示的路由器提示。

1 个答案:

答案 0 :(得分:0)

正如Xesenix所说,我的体系结构很好。我的错误是在SingleSerieComponent(由routerlink显示的组件)上。

我已订阅ngOnInit方法中的代码。所以我的SingleSerieComponent看起来像:

@Component({
  selector: 'app-single-serie',
  templateUrl: './single-serie.component.html',
  styleUrls: ['./single-serie.component.scss']
})
export class SingleSerieComponent implements OnInit {

  serie: Serie;
  series: Serie[];
  serieSubscription: Subscription;

  constructor(private route: ActivatedRoute, private serieService: SeriesService,
              private router: Router) { 

    route.params.subscribe(val => {
      this.serie = new Serie(''); // on definit par defaut : chaine vide, 0 et chaine vide
      const id = this.route.snapshot.params['id'];
      console.log("id :");
      console.log(id);
      this.serieService.getSingleSerie(+id).then(
        (serie: Serie) => {
          this.serie = serie;
        }
      );
    });
  }

  ngOnInit() {
    console.log("SingleSerieComponent-ngOnInit");

    this.serie = new Serie(''); // on definit par defaut : chaine vide, 0 et chaine vide
    const id = this.route.snapshot.params['id'];
    console.log("id :");
    console.log(id);
    this.serieService.getSingleSerie(+id).then(
      (serie: Serie) => {
        this.serie = serie;
      }
    );

  }

  onBack(){
    this.router.navigate(['/pops']);
  }

  ngOnDestroy(){
    console.log("SingleSerieComponent-ngOnDestroy");
  }
}