如何使用路由制作一个活动按钮?

时间:2019-10-21 09:30:53

标签: angular angular-material

我正在使用android { buildTypes { getByName("debug") { configBuildType(this, DEBUG_APP_NAME, DEBUG_APP_VERSION) } } } fun configBuildType(buildType: com.android.build.gradle.internal.dsl.BuildType, appName: String, appVersion: String) { buildType.resValue("string", "application_name", appName) buildType.buildConfigField("String", "APP_VERSION", appVersion) } 组件。而且我需要这样做,如果菜单中的某些链接处于活动状态,则该按钮也应处于活动状态,即以某种颜色绘制。怎么做?

CreateMap<Source, Destination>.ForMember(x => x.IgnoredProperty, opt => opt.Ignore());

1 个答案:

答案 0 :(得分:1)

您可以使用路由器功能isActive检查路由是否处于活动状态,并声明exactMatch: false。然后,您将得到一个布尔值,该布尔值说明是否激活了精确的路由“目录”或子目录。由于您的mat-button不是路由器链接,因此不能使用routerLinkActive属性。而是使用ngClass定义CSS类。

HTML:

<button mat-button [matMenuTriggerFor]="menu" [ngClass]={'active': isDirectoryPath()}>
    Directories
    <mat-icon>expand_more</mat-icon>
</button>
<mat-menu #menu="matMenu">
    <button mat-menu-item routerLinkActive="active" routerLink="/directory/teams"
        routerLinkActive="color">Teams</button>
    <button mat-menu-item routerLinkActive="active" routerLink="/directory/Teams"
        routerLinkActive="color">Masters</button>
</mat-menu>

TS:

constructor(private router: Router){}

isDirectoryPath() {
  return this.router.isActive('directory', false); // <-- boolean is for exactMatch
}