首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在material accordion中重新加载数据源后保持展开的行状态

在material accordion中重新加载数据源后保持展开的行状态
EN

Stack Overflow用户
提问于 2021-10-27 16:53:56
回答 1查看 57关注 0票数 0

我有一个带有嵌套展开面板的accordion,我想在重新加载数据后保持每一行的已展开/未展开状态。

我在扩展输入中的material accordion文档中找到了可以用于扩展面板的,但我没有看到一个解决方案来保持每一行的状态,以便将其传递给扩展输入。https://material.angular.io/components/expansion/api

代码语言:javascript
复制
        <mat-expansion-panel *ngFor="let region of (groupedData | keyvalue)">
            <mat-expansion-panel *ngFor="let country of (region.value | keyvalue)"
              togglePosition='before'>
            </mat-expansion-panel>
        </mat-expansion-panel>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-27 20:47:13

如果您跟踪扩展的区域和国家/地区,情况会怎样?

代码语言:javascript
复制
expandedRegions: { [key: string]: boolean } = {};
expandedCountries: { [key: string]: boolean } = {};

mat-expansion-panel组件的openedclosed输出添加一些事件处理程序,并相应地更新映射:

代码语言:javascript
复制
<mat-expansion-panel *ngFor="let region of (groupedData | keyvalue: regionSortFn)"
  (opened)="handleRegionPanelStateChange(region.key, true)"
  (closed)="handleRegionPanelStateChange(region.key, false)"
  [expanded]="expandedRegions[region.key]">
  <!-- ... -->
  <mat-expansion-panel *ngFor="let country of (region.value | keyvalue: countrySortFn)"
    togglePosition='before'
    (opened)="handleCountryPanelStateChanged(country.key, true)"
    (closed)="handleCountryPanelStateChanged(country.key, false)"
    [expanded]="expandedCountries[country.key]">
    <!-- ... -->
  </mat-expansion-panel>
</mat-expansion-panel>

处理程序就是这样:

代码语言:javascript
复制
handleRegionPanelStateChange(key: string, isOpen: boolean) {
  this.expandedRegions = { ...this.expandedRegions, [key]: isOpen };
}

handleCountryPanelStateChanged(key: string, isOpen: boolean) {
  this.expandedCountries = { ...this.expandedCountries, [key]: isOpen };
}

无论何时重新加载数据,以前展开的面板都应保持其状态。如果您刷新页面,这当然会丢失,如果您需要在页面刷新期间保持,请查看会话存储或本地存储,并将它们放在那里。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69742645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档