如何以编程方式切换 Angular 材质扩展面板

2024-05-24

我刚刚开始从事 Angular 4 项目的材料设计工作。

我目前正在研究扩展组件,API 规定 https://material.angular.io/components/expansion/overview that 用户无法切换禁用的扩展面板,但仍可以通过编程方式进行操作。但是,我不知道如何以编程方式切换面板。

Angular 中模拟这种情况的首选方法是什么?


expanded被设定为true展开扩展面板并设置为false关闭扩展面板。在以下示例中,扩展面板以编程方式打开和关闭。请参考这个链接 https://plnkr.co/edit/iLUkCUDCSM6fygeQFadA?p=preview

TS file

import { Component } from '@angular/core';

/**
 * @title Expansion panel as accordion
 */
@Component({
    selector: 'expansion-steps-example',
    templateUrl: 'expansion-steps-example.html',
    styleUrls: ['expansion-steps-example.css']
})
export class ExpansionStepsExample {
    step = 0;

    setStep(index: number) {
        this.step = index;
    }

    nextStep() {
        this.step++;
    }

    prevStep() {
        this.step--;
    }
}

HTML 文件

<mat-accordion class="example-headers-align">
    <mat-expansion-panel [expanded]="step === 0" (opened)="setStep(0)" hideToggle="true">
        <mat-expansion-panel-header>
            <mat-panel-title>
                Personal data
            </mat-panel-title>
            <mat-panel-description>
                Type your name and age
                <mat-icon>account_circle</mat-icon>
            </mat-panel-description>
        </mat-expansion-panel-header>

        <mat-form-field>
            <input matInput placeholder="First name">
        </mat-form-field>

        <mat-form-field>
            <input matInput type="number" min="1" placeholder="Age">
        </mat-form-field>

        <mat-action-row>
            <button mat-button color="primary" (click)="nextStep()">Next</button>
        </mat-action-row>
    </mat-expansion-panel>

    <mat-expansion-panel [expanded]="step === 1" (opened)="setStep(1)" hideToggle="true">
        <mat-expansion-panel-header>
            <mat-panel-title>
                Destination
            </mat-panel-title>
            <mat-panel-description>
                Type the country name
                <mat-icon>map</mat-icon>
            </mat-panel-description>
        </mat-expansion-panel-header>

        <mat-form-field>
            <input matInput placeholder="Country">
        </mat-form-field>

        <mat-action-row>
            <button mat-button color="warn" (click)="prevStep()">Previous</button>
            <button mat-button color="primary" (click)="nextStep()">Next</button>
        </mat-action-row>
    </mat-expansion-panel>

    <mat-expansion-panel [expanded]="step === 2" (opened)="setStep(2)" hideToggle="true">
        <mat-expansion-panel-header>
            <mat-panel-title>
                Day of the trip
            </mat-panel-title>
            <mat-panel-description>
                Inform the date you wish to travel
                <mat-icon>date_range</mat-icon>
            </mat-panel-description>
        </mat-expansion-panel-header>

        <mat-form-field>
            <input matInput placeholder="Date" [matDatepicker]="picker" (focus)="picker.open()" readonly>
        </mat-form-field>
        <mat-datepicker #picker></mat-datepicker>

        <mat-action-row>
            <button mat-button color="warn" (click)="prevStep()">Previous</button>
            <button mat-button color="primary" (click)="nextStep()">End</button>
        </mat-action-row>
    </mat-expansion-panel>

</mat-accordion>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式切换 Angular 材质扩展面板 的相关文章

随机推荐

  • Android 中的垂直(旋转)标签

    我需要两种在 Android 中显示垂直标签的方法 水平标签逆时针旋转 90 度 字母在侧面 带有字母的水平标签 如商店招牌 我是否需要为这两种情况 一种情况 开发自定义小部件 我可以使 TextView 以这种方式呈现吗 如果我需要完全自
  • InnoDB:使用事务批量插入或组合多个查询?

    做批量的时候INSERT在InnoDB中 我应该使用事务吗 START TRANSACTION INSERT INTO tbl name a b c VALUES 1 2 3 INSERT INTO tbl name a b c VALUE
  • Python 可以替代 Java 小程序吗?

    除了制作用于物理模拟 如抛射运动 重力等 的教育性 Java 小程序之外 还有其他选择吗 如果你想让它在浏览器中运行 你可以使用PyJamas http pyjs org 这是一个 Python 到 Javascript 的编译器和工具集
  • 从 DataRow 单元格解析 int [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 如何从 DataRow 单元格解析 int 值 Int32 Parse item QuestionId ToString 这段代码可以工作 但看
  • Drools:为什么是无状态会话?

    Drools 使用会话来存储运行时数据 为此 有两种会话 无状态和有状态 与无状态会话相比 有状态会话允许迭代调用 并且似乎比无状态会话具有所有优势 那么为什么会有无状态会话呢 他们服务的目的是什么 与有状态会话相比 它们的优势是什么 谢谢
  • 传递数组时在 C 中的函数参数中强制指定数组大小

    Context 在 C 中 我有一个以数组作为参数的函数 该参数用作该函数的输出 输出的大小始终相同 我会 让阅读代码的人清楚所需的大小 不过它已经在函数注释中了 理想情况下 编译会输出警告或错误 这样我就可以在编译时而不是运行时防止出现问
  • .NET WebClient:DownloadString 在哪里?

    我可能在这里遗漏了一些东西 但是当我使用 WebClient 并查找 DownloadString 方法 如书籍示例中所示 时 我只看到 DownloadStringAsync 我缺少什么导入 您使用的是 Silverlight 吗 Sil
  • valgrind 在 Raspberry Pi 上返回未处理的指令

    我最近一直在尝试在运行 Debian GNU Linux7 0 喘息 的树莓派 型号 b 上使用 valgrind 来调试分段错误 每次我在编译的 C 程序上运行 valgrind 时 都会得到类似以下内容的信息 disInstr arm
  • 缩放更改后获取谷歌地图 v3 的边界

    我试图在缩放更改后获取地图的边界 但是 Zoom changed 事件会触发before边界已被重新计算 因此 在 Zoom changed 处理程序中 您将获得之前的边界 而不是新的边界 有没有办法获得缩放变化的正确范围 这是一个bug
  • 在 emacs org-mode 中仅延迟加载前 N 行

    有没有办法告诉 org mode 仅加载长文本文件的前 N 行 我想保持整个文件打开以便能够搜索它 但在文件的前 N 行上显示组织模式 这是我编辑新内容的地方 如果您在组织模式下有结构化大纲 则可以使用以下命令设置全局文件可见性 START
  • Matlab下降低图像质量

    问候 我正在尝试找到一种简单的方法来处理图像 以便将其质量从 8 位降低到 3 位 实现这一目标的最简单方法是什么 干杯 如果要线性缩放 只需将每个像素值除以 255 7 即 如果原始图像存储在矩阵 I 中 则让低分辨率图像 J I 255
  • 钩子之前的黄瓜中的功能和场景大纲名称

    如果我有一根简单的黄瓜feature and scenario 像这样 示例代码来自黄瓜维基 https github com cucumber cucumber wiki Scenario outlines Feature Eating
  • spring data jpa 过滤 @OneToMany 中的子项

    我有一个员工测试实体是父实体并且FunGroup信息子实体 这两个实体都是通过employeeId映射 我需要一种方法来过滤掉与搜索条件匹配的子实体 以便结果仅包含父实体和子实体 满足要求 员工测试类 Entity name Employe
  • 多语言自定义404 htaccess规则导致重定向循环

    我正在开发一个多语言网站 需要为每种语言设置自定义 404 页面 我在 htaccess 中有以下规则 但不太正常 RewriteCond REQUEST URI ie NC ErrorDocument 404 http www domai
  • Django 迁移错误 'TypeError: 序列项 1: 需要一个类似字节的对象,在 mysql-connector-pythoncursor_cent.py 文件上找到 str'

    我正在 Django 项目中使用 mysql connector 来处理 mysql 请求 问题是我正在使用 django admin startproject project 设置一个简单的项目 当我尝试进行简单的管理 py 迁移时 这是
  • 如何让 Grunt.js 和 Meteor.js 协同工作?

    我想在我的 Meteor 应用程序中使用简单的复制和串联 但是当 Meteor 在服务器和客户端上运行所有 javascript 文件时 我遇到了问题 而我不希望它们在任何地方运行 它要么只是配置文件 例如Gruntfile js或我想以某
  • 我可以通过 GH API 获取两次提交之间一个文件的差异数据吗?

    我知道如何通过 API 以及 SHA 和所有这些好东西来获取文件的提交 但是 假设我只想要 1 次提交中的文件差异或两次提交中同一文件的差异 例如 在这次提交 https github com rails rails commit ea75
  • 无法在 Swift 的 Storyboard 中加载 UIViewController XIB 文件

    我读了使用 XCode 故事板实例化使用 XIB 进行设计的视图控制器 https stackoverflow com questions 9155719 using xcode storyboard to instantiate view
  • 用户的 RecyclerView 为空

    我试图使用 Firebase 实时数据库在 RecyclerView 中向用户显示主键 但每次我尝试 RecyclerView 都是空的 我尝试了很多教程 但似乎没有任何帮助 这是我的数据库的样子 这是我使用 RecyclerView 的类
  • 如何以编程方式切换 Angular 材质扩展面板

    我刚刚开始从事 Angular 4 项目的材料设计工作 我目前正在研究扩展组件 API 规定 https material angular io components expansion overview that 用户无法切换禁用的扩展面