【问题标题】:mat-select in a for-loop, setting the "selected" in dropdown - angular在 for 循环中选择 mat-select,在下拉列表中设置“选定” - 角度
【发布时间】:2019-12-19 16:37:24
【问题描述】:

我正在循环浏览我的 html 中的“menuOptions”,以便在 mat-accoridion(角度材料 api)内的下拉菜单中输出多个选项

我希望该值是每个选择下拉列表中的值,所以我将我的 [(value)] 设置为我的 for 循环中的元素(如下所示)

<mat-option *ngFor="let option of menuOptions" [value]="option" (click)="selectConfig(option)">
      {{option}}
</mat-option>

但是,我希望在第一次加载时自动选择一个....(数组 menuOption 中的第一个菜单选项自动选择)我不能只在我的打字稿文件中设置选项,因为我只有 menuOptions(数组)可用. option 是我在 for 循环中循环的元素。

任何想法如何以另一种方式设置选项?

谢谢!

【问题讨论】:

    标签: html angular typescript templates angular-material


    【解决方案1】:

    选择的值需要在封闭的mat-select元素中定义。

    <mat-select [value]="selectedMenuOption">
    

    这假定您的组件中有一个名为 selectedMenuOption 的公共成员。

    通过[(value)] 定义双向绑定时,您甚至可以摆脱为mat-option 元素定义的click 事件处理程序。

    <mat-select [(value)]="selectedMenuOption">
    

    来自Angular Material Examples 的以下StackBlitz 很好地说明了这一点。

    【讨论】:

    • 我已经看到了这个 - 但我的代码和你附加的代码之间的区别是我的代码在一个 for 循环中......所以“选项”——在我上面的例子中——不是一个实变量。它是临时的,因为它循环通过我的选择选项值。因此,这对我不起作用。
    • 怎么样?如果 option 是我的 menuOptions 的 ngFor 中的一个元素,我不能做 option = "Example"
    • 不看代码和模板就很难给出建议。也许您可以将已有的东西提供给 StackBlitz,这样会更容易找到可行的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多