在默认情况下,我有一个父组件,并在其中显示了一个子组件,如何使其在单击“时间线”时,而不是在饼图组件中显示另一个具有不同关系图的组件。
parent.component.html
<div class="portfolio__column">
<ul class="portfolio__select">
<li class="portfolio__select-item">
<a routerLinkActive="active" [routerLink]="['/dashboard']">Breakdown</a>
</li>
<li class="portfolio__select-item">
<a routerLinkActive="active" [routerLink]="['/dashboard']">Timeline</a>
</li>
</ul>
</div>
</div>
<div class="portfolio__row">
<app-doughnut-chart></app-doughnut-chart>
</div>发布于 2022-03-27 13:32:21
你可以有一个像routerPath这样的
const routes: Routes = [
{ path: 'line-chart', component: LineChartComponent },
{ path: 'doughnut-chart', component: DoughnutChartComponent }
];
@NgModule({
imports: [ BrowserModule, FormsModule,RouterModule.forRoot(routes) ],
declarations: [ AppComponent, DoughnutChartComponent,LineChartComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }你的appComponent就像
<ul class="portfolio__select">
<li class="portfolio__select-item">
<a routerLinkActive="active" [routerLink]="['/line-chart']">Breakdown</a>
</li>
<li class="portfolio__select-item">
<a routerLinkActive="active" [routerLink]="['/doughnut-chart']">Timeline</a>
</li>
</ul>
<router-outlet></router-outlet>然后,当您的url类似于localhost:4200/doughnut-chart' you see the DougnnutChartComponent and when is localhost:4200/行图表‘时,您将看到LineChartComponent。
或者,您可以采取另一种方法,即不更改"url",只需使用变量"typeChart“。在您的.ts中定义
typeChart:string='line'你的.html就像
<ul class="portfolio__select">
<li class="portfolio__select-item">
<a [class.active]="typeChart=='line' (click)="typeChart='line' >Breakdown</a>
</li>
<li class="portfolio__select-item">
<a [class.active]="typeChart=='doughnut' (click)="typeChart='doughnut'">Timeline</a>
</li>
</ul>
<app-doughnut-chart *ngIf="typeChart=='doughnut'></app-doughnut-chart>
<app-line-chart *ngIf="typeChart=='line'></app-line-chart>好吧,如果您创建一个应用程序仪表板组件,那么最后一种方法可以是
@Input()typeChart="line" //<--in .ts
<app-doughnut-chart *ngIf="typeChart=='doughnut'></app-doughnut-chart>
<app-line-chart *ngIf="typeChart=='line'></app-line-chart>还有你的mainComponent
<ul>
...
</ul>
<app-dashboard-component [typeChart]="typeChart">
</app-dashboard-component>https://stackoverflow.com/questions/71622853
复制相似问题