【发布时间】:2020-05-20 18:21:06
【问题描述】:
我在可折叠的侧边导航中有一个 Angular(8) Material 扩展面板。
到目前为止,无论侧导航是打开还是关闭,扩展面板都会激活。 当面板关闭时,图标不应该做任何事情。仅当侧边导航处于打开位置(宽)时,项目才应展开/折叠。所附图像显示侧导航已关闭。人字形被渲染为材质扩展面板的一部分。一旦扩展能力消失,它们就会消失。
所以综上所述,当侧边导航!isExpanded时,我想从dom中去掉,打开展开面板的能力。
<mat-expansion-panel [disabled]="isDisabled"> 将禁用面板。
理想情况下,我想学习如何做两件事:
关闭侧边导航时停用/移除展开功能,ngif。
BY Javascript,当 !isExpanded css display:none; 呈现。我可以将雪佛龙隐藏为半美元的解决方案,但实际上整个事情都需要去。但我仍然想看看如何以编程方式做到这一点。
HTML:
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-icon *ngIf="!isExpanded">
<fa-icon [icon]="faCheck"></fa-icon>
</mat-icon>
<p *ngIf="isExpanded">
<fa-icon [icon]="faCheck"></fa-icon>
<span class="forms">Buttons & Indicators</span></p>
</mat-expansion-panel-header>
<p *ngIf="!isExpanded" p>content</p>
</mat-expansion-panel>
</mat-sidenav>
</mat-sidenav-container>
渲染:
<mat-expansion-panel _ngcontent-lgo-c0="" class="mat-expansion-panel ng-tns-c8-7 ng-star-inserted" style=""><mat-expansion-panel-header _ngcontent-lgo-c0="" class="mat-expansion-panel-header ng-tns-c9-8 ng-trigger ng-trigger-expansionHeight ng-star-inserted" role="button" id="mat-expansion-panel-header-3" tabindex="0" aria-controls="cdk-accordion-child-3" aria-expanded="false" aria-disabled="false" style="height: 48px;" data-ol-has-click-handler=""><span class="mat-content"><!--bindings={
"ng-reflect-ng-if": "true"
}--><mat-icon _ngcontent-lgo-c0="" class="mat-icon notranslate material-icons mat-icon-no-color ng-star-inserted" role="img" aria-hidden="true" style=""><fa-icon _ngcontent-lgo-c0="" class="ng-fa-icon" ng-reflect-icon="[object Object]"><svg role="img" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check" class="svg-inline--fa fa-check fa-w-16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"></path></svg></fa-icon></mat-icon><!--bindings={
"ng-reflect-ng-if": "false"
}--></span><!--bindings={
"ng-reflect-ng-if": "true"
}-->**<span class="mat-expansion-indicator ng-tns-c9-8 ng-trigger ng-trigger-indicatorRotate ng-star-inserted" style="transform: rotate(0deg);"></span>**</mat-expansion-panel-header><div class="mat-expansion-panel-content ng-trigger ng-trigger-bodyExpansion" role="region" aria-labelledby="mat-expansion-panel-header-3" id="cdk-accordion-child-3" style="height: 0px; visibility: hidden;"><div class="mat-expansion-panel-body"><!--bindings={
"ng-reflect-ng-if": "true"
}--><p _ngcontent-lgo-c0="" p="" class="ng-star-inserted" style="">content</p><!--bindings={}--></div></div></mat-expansion-panel>
组件:
import { Component } from '@angular/core';
import { faFileAlt} from '@fortawesome/free-solid-svg-icons';
import {faBars} from '@fortawesome/free-solid-svg-icons/faBars';
import {faChevronLeft} from '@fortawesome/free-solid-svg-icons/faChevronLeft';
import {faLocationArrow} from '@fortawesome/free-solid-svg-icons/faLocationArrow';
import {faCheck} from '@fortawesome/free-solid-svg-icons/faCheck';
import {faWindowRestore} from '@fortawesome/free-solid-svg-icons/faWindowRestore';
import {faTable} from '@fortawesome/free-solid-svg-icons/faTable';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'style-guide';
// opened = 'opened';
isExpanded = false;
faBars = faBars;
faChevronLeft = faChevronLeft;
faFileAlt = faFileAlt;
faLocationArrow = faLocationArrow;
faCheck = faCheck;
faWindowRestore = faWindowRestore;
faTable = faTable;
}
谢谢!!!
【问题讨论】:
-
使用 ngClass 做第二部分。如需进一步帮助,请发布您的组件。作为旁注 angular8 不是javascript。它在打字稿中,请修复您的标签
标签: angular typescript angular-material angular8