可点击角材料卡

Luc*_*caA 0 typescript angular-material angular

我想将路由器链接添加到席卡组件以使卡可点击。我的组件是这样的:

<mat-card class="card" >
     <mat-card-content>
          <mat-card-title> {{title}}</mat-card-title>
          <mat-card-subtitle> {{subtitle}} </mat-card-subtitle>
     </mat-card-content>
</mat-card>
Run Code Online (Sandbox Code Playgroud)

如何做到这一点?

谢谢。

Nik*_*fer 12

<mat-card (click)="doStuff()" class="card" >
     <mat-card-content>
          <mat-card-title> {{title}}</mat-card-title>
          <mat-card-subtitle> {{subtitle}} </mat-card-subtitle>
     </mat-card-content>
</mat-card>
Run Code Online (Sandbox Code Playgroud)

然后它应该处理点击

  • 最好使用 `(click)` 事件而不是原生的 `onclick` 属性。 (3认同)

Sac*_*aka 6

只需使用 routerLink

<mat-card-content  routerLink = "path">
Run Code Online (Sandbox Code Playgroud)

  • 为了让它看起来是一个可点击的元素,您还可以添加以下 css: .card { cursor: pointer; } (10认同)

Kar*_*mar 5

如果您需要在导航之前进行任何操作。最佳实践是使用单击方法来处理任何操作和导航,

html

<mat-card class="card" (click)="navigate()">
     <mat-card-content>
          <mat-card-title> {{title}}</mat-card-title>
          <mat-card-subtitle> {{subtitle}} </mat-card-subtitle>
     </mat-card-content>
</mat-card>
Run Code Online (Sandbox Code Playgroud)

Ts

import { Router } from '@angular/router';

constructor(private router:Router){
}
navigate(){
//do your any operations
this.router.navigate(['path']);
//also you can pass like this,
 this.router.navigateByURL(['path']);
}
Run Code Online (Sandbox Code Playgroud)