首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >垫-手风琴和嵌套垫-扩展-面板-如何只有一个打开?

垫-手风琴和嵌套垫-扩展-面板-如何只有一个打开?
EN

Stack Overflow用户
提问于 2019-03-26 12:08:35
回答 1查看 3.3K关注 0票数 0

我有以下结构:

代码语言:javascript
复制
<mat-accordion>
  <mat-expansion-panel>(some panel body)</mat-expansion-panel>
  <some-component></some-component>
</mat-accordion>

some-component的模板也包含一些mat-expansion-panel的。

问题是,扩展some-component内部的面板不会导致其他面板崩溃。

似乎我不得不指定手风琴用于这些儿童面板,但不知道如何使用。

根据docs (https://material.angular.io/components/expansion/api),有一个属性用于此,但尝试此操作会导致Can't bind to 'accordion' since it isn't a known property of 'mat-expansion-panel'出错。

我怎么能一次只做一个面板来展开?

演示复制错误:https://stackblitz.com/edit/angular-lyuqsp

EN

回答 1

Stack Overflow用户

发布于 2019-03-26 12:12:11

我试过这段代码并成功了:

代码语言:javascript
复制
if(this.matExpansionPanel.extended) { // usually return false for it catched the state when you clicked the button - when the panel was still closed
    // do something you want
}
else {
    this.matExpansionPanel.toggle();
    // do something you want
}

在您的例子中,在mat扩展面板标记中,添加#youNameIt='matExpansionPanel‘。

matExpansionPanel是出口类型的角材料膨胀板,如角材料中所提到的。返回到.ts脚本,添加@ViewChild('youNameIt') matExpansionPanel /or任何您想要的/: MatExpansionPanel,然后在您的function函数中添加上面的脚本。

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

https://stackoverflow.com/questions/55356794

复制
相关文章

相似问题

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