将背景 class 应用到 parent div in angular 6
Applying a background class to parent div in angular 6
我正在用 bootstrap 4 使用卡片制作手风琴。在每张卡片的旁边,我都有一些图标,如编辑、查看、详细信息等。单击这些图标时,将调用组件中的一个函数,然后将用户导航到 child 路由。
child 路由器出口显示在此手风琴的右侧。
我想在单击该卡片下的任何图标时更改 card-header 背景。我该怎么做?
这是html
<div id="accordion" role="tablist" aria-multiselectable="true">
<!--Kitchen-->
<div class="card mwk-project-left" *ngFor="let psl of projectSubList; let i = index">
<div class="card-header mwk-project-details-hdr" role="tab" id="heading{{psl.Id}}">
<h5 class="mb-0">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse{{psl.Id}}" aria-expanded="true" [attr.aria-controls]="'collapse'+psl.Id">
{{psl.Description}}
</a>
</h5>
</div>
<div id="collapse{{psl.Id}}" class="collapse show" role="tabpanel" [attr.aria-labelledby]="'heading'+psl.Id">
<div class="card-body">
<ul *ngIf="psl.Features">
<li *ngFor="let ftr of psl.Features; let fi = index">
{{ftr.FeatureGroup}}: {{ftr.Description}}
</li>
</ul>
<h4 class="text-danger" *ngIf="!psl.Features">No features found!</h4>
<div class="mwk-actions-sub">
<button mat-icon-button color="accent" type="button" (click)="onView(psl.Id)" title="View {{psl.Description}}" class="matIconButton"><mat-icon>ballot</mat-icon></button>
<button mat-icon-button color="primary" type="button" (click)="onDetail(psl.Id)" title="Detail {{psl.Description}}" class="matIconButton"><mat-icon>view_list</mat-icon></button>
<button mat-icon-button color="primary" type="button" (click)="onEdit(psl.Id)" title="Edit {{psl.Description}}" class="matIconButton"><mat-icon>edit</mat-icon></button>
<button mat-icon-button color="primary" type="button" (click)="onConfig(psl.Id)" title="Config {{psl.Description}}" class="matIconButton"><mat-icon>settings_applications</mat-icon></button>
<button mat-icon-button color="warn" type="button" (click)="onDelete(psl.Id, psl.Description)" title="Delete {{psl.Description}}" class="matIconButton"><mat-icon>clear</mat-icon></button>
</div>
</div>
</div>
</div>
</div>
我该怎么做?
查看了此页面中的 div 示例,但我没有 a 标签。
https://angular.io/api/router/RouterLinkActive
<div routerLinkActive="active-link" [routerLinkActiveOptions]="{exact: true}">
<a routerLink="/user/jim">Jim</a>
<a routerLink="/user/bob">Bob</a>
</div>
更新 1
我进行了以下两项更改,现在我的背景已应用到 card-header 部分。
<div class="card mwk-project-left" *ngFor="let psl of projectSubList; let i = index" routerLinkActive="mwk-project-left-active" [routerLinkActiveOptions]="{exact: true}">
然后
<a mat-icon-button color="accent" [routerLink]="[psl.Id]" title="View {{psl.Description}}" class="matIconButton"><mat-icon>ballot</mat-icon></a>
<a mat-icon-button color="primary" [routerLink]="[psl.Id, 'detail-list']" title="Detail {{psl.Description}}" class="matIconButton"><mat-icon>view_list</mat-icon></a>
<a mat-icon-button color="primary" [routerLink]="[psl.Id, 'edit']" title="Edit {{psl.Description}}" class="matIconButton"><mat-icon>edit</mat-icon></a>
<a mat-icon-button color="primary" [routerLink]="[psl.Id, 'config-edit']" title="Config {{psl.Description}}" class="matIconButton"><mat-icon>settings_applications</mat-icon></a>
<a mat-icon-button color="warn" [routerLink]="[psl.Id, 'edit']" [queryParams]="{delete: 'yes'}" title="Delete {{psl.Description}}" class="matIconButton"><mat-icon>clear</mat-icon></a>
以上更新 1 有助于在路由器出口部分外单击。
当我单击 link 从内部路由器出口转到另一个 child 页面时,此时我的更新 1 class 被删除。所以我松了 mt 背景。现在如何解决这个问题?
更新 2
exact: false 修复了从路由器出口内部转到不同 child 页面时的问题。
<div class="card mwk-project-left" *ngFor="let psl of projectSubList; let i = index" routerLinkActive="mwk-project-left-active" [routerLinkActiveOptions]="{exact: false}">
我很好,谢谢观看!
这 post 有帮助
https://angular.io/api/router/RouterLinkActive
然后将 routerLinkActive
应用到带有 exact false
的卡片 div,因为其中一个子页面具有将用户带到其他页面的链接。
<div class="card mwk-project-left" *ngFor="let psl of projectSubList;
let i = index" routerLinkActive="mwk-project-left-active"
[routerLinkActiveOptions]="{exact: false}">
最后,我不得不将按钮更改为锚标签
来自
<button mat-icon-button color="accent" type="button" (click)="onView(psl.Id)"
title="View {{psl.Description}}" class="matIconButton"><mat-icon>ballot</mat-icon></button>
到
<a mat-icon-button color="accent" [routerLink]="[psl.Id]" title="View {{psl.Description}}"
class="matIconButton"><mat-icon>ballot</mat-icon></a>
我正在用 bootstrap 4 使用卡片制作手风琴。在每张卡片的旁边,我都有一些图标,如编辑、查看、详细信息等。单击这些图标时,将调用组件中的一个函数,然后将用户导航到 child 路由。
child 路由器出口显示在此手风琴的右侧。
我想在单击该卡片下的任何图标时更改 card-header 背景。我该怎么做?
这是html
<div id="accordion" role="tablist" aria-multiselectable="true">
<!--Kitchen-->
<div class="card mwk-project-left" *ngFor="let psl of projectSubList; let i = index">
<div class="card-header mwk-project-details-hdr" role="tab" id="heading{{psl.Id}}">
<h5 class="mb-0">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse{{psl.Id}}" aria-expanded="true" [attr.aria-controls]="'collapse'+psl.Id">
{{psl.Description}}
</a>
</h5>
</div>
<div id="collapse{{psl.Id}}" class="collapse show" role="tabpanel" [attr.aria-labelledby]="'heading'+psl.Id">
<div class="card-body">
<ul *ngIf="psl.Features">
<li *ngFor="let ftr of psl.Features; let fi = index">
{{ftr.FeatureGroup}}: {{ftr.Description}}
</li>
</ul>
<h4 class="text-danger" *ngIf="!psl.Features">No features found!</h4>
<div class="mwk-actions-sub">
<button mat-icon-button color="accent" type="button" (click)="onView(psl.Id)" title="View {{psl.Description}}" class="matIconButton"><mat-icon>ballot</mat-icon></button>
<button mat-icon-button color="primary" type="button" (click)="onDetail(psl.Id)" title="Detail {{psl.Description}}" class="matIconButton"><mat-icon>view_list</mat-icon></button>
<button mat-icon-button color="primary" type="button" (click)="onEdit(psl.Id)" title="Edit {{psl.Description}}" class="matIconButton"><mat-icon>edit</mat-icon></button>
<button mat-icon-button color="primary" type="button" (click)="onConfig(psl.Id)" title="Config {{psl.Description}}" class="matIconButton"><mat-icon>settings_applications</mat-icon></button>
<button mat-icon-button color="warn" type="button" (click)="onDelete(psl.Id, psl.Description)" title="Delete {{psl.Description}}" class="matIconButton"><mat-icon>clear</mat-icon></button>
</div>
</div>
</div>
</div>
</div>
我该怎么做?
查看了此页面中的 div 示例,但我没有 a 标签。
https://angular.io/api/router/RouterLinkActive
<div routerLinkActive="active-link" [routerLinkActiveOptions]="{exact: true}">
<a routerLink="/user/jim">Jim</a>
<a routerLink="/user/bob">Bob</a>
</div>
更新 1
我进行了以下两项更改,现在我的背景已应用到 card-header 部分。
<div class="card mwk-project-left" *ngFor="let psl of projectSubList; let i = index" routerLinkActive="mwk-project-left-active" [routerLinkActiveOptions]="{exact: true}">
然后
<a mat-icon-button color="accent" [routerLink]="[psl.Id]" title="View {{psl.Description}}" class="matIconButton"><mat-icon>ballot</mat-icon></a>
<a mat-icon-button color="primary" [routerLink]="[psl.Id, 'detail-list']" title="Detail {{psl.Description}}" class="matIconButton"><mat-icon>view_list</mat-icon></a>
<a mat-icon-button color="primary" [routerLink]="[psl.Id, 'edit']" title="Edit {{psl.Description}}" class="matIconButton"><mat-icon>edit</mat-icon></a>
<a mat-icon-button color="primary" [routerLink]="[psl.Id, 'config-edit']" title="Config {{psl.Description}}" class="matIconButton"><mat-icon>settings_applications</mat-icon></a>
<a mat-icon-button color="warn" [routerLink]="[psl.Id, 'edit']" [queryParams]="{delete: 'yes'}" title="Delete {{psl.Description}}" class="matIconButton"><mat-icon>clear</mat-icon></a>
以上更新 1 有助于在路由器出口部分外单击。
当我单击 link 从内部路由器出口转到另一个 child 页面时,此时我的更新 1 class 被删除。所以我松了 mt 背景。现在如何解决这个问题?
更新 2
exact: false 修复了从路由器出口内部转到不同 child 页面时的问题。
<div class="card mwk-project-left" *ngFor="let psl of projectSubList; let i = index" routerLinkActive="mwk-project-left-active" [routerLinkActiveOptions]="{exact: false}">
我很好,谢谢观看!
这 post 有帮助 https://angular.io/api/router/RouterLinkActive
然后将 routerLinkActive
应用到带有 exact false
的卡片 div,因为其中一个子页面具有将用户带到其他页面的链接。
<div class="card mwk-project-left" *ngFor="let psl of projectSubList;
let i = index" routerLinkActive="mwk-project-left-active"
[routerLinkActiveOptions]="{exact: false}">
最后,我不得不将按钮更改为锚标签
来自
<button mat-icon-button color="accent" type="button" (click)="onView(psl.Id)"
title="View {{psl.Description}}" class="matIconButton"><mat-icon>ballot</mat-icon></button>
到
<a mat-icon-button color="accent" [routerLink]="[psl.Id]" title="View {{psl.Description}}"
class="matIconButton"><mat-icon>ballot</mat-icon></a>