【问题标题】:angular material select module get event before open角度材料选择模块在打开前获取事件
【发布时间】:2018-05-01 04:12:16
【问题描述】:

目前我知道<mat-select> 模块中的事件openedChange。然而,这只会在面板已经打开之后 触发。在面板打开之前,我需要一种连接到模块的方法。我已经尝试使用 click 事件处理程序,但是当您单击标签时,如果标签是浮动的,它就不起作用。

有什么建议吗?

【问题讨论】:

  • 目前没有这样的功能。你究竟需要达到什么目标?你也许可以用不同的方式做到这一点
  • 我已经找到了解决这个问题的方法。但它很笨拙,我不喜欢它。我想在显示选项之前更改选项。但是,如果我将代码更改为 openedChange 方法中的选项列表,则旧选项仍会在事件触发之前显示并且可以更改它们。解决此问题的笨拙方法是使用openChanged 事件跟踪打开状态,并将其与似乎立即更新的panelOpen 属性进行比较。它需要一个非常不直观的if 条件。我更喜欢在显示之前更新事件中的选项的方法。
  • 嘿,你找到合适的解决方案了吗?你能告诉我们你现在的吗?谢谢!
  • @tris 我在这里做了一个工作示例:stackblitz.com/edit/…
  • 好主意!喜欢它!谢谢! :)

标签: angular angular-material angular-material2


【解决方案1】:

看看autocomplete example。在该示例中,选项是动态过滤的,但对于选择组件,您可以使用相同的方法来动态创建选项。

【讨论】:

    【解决方案2】:

    为了做我想做的事,我设计了一个延迟/异步加载选择控件。

    查看工作示例:https://stackblitz.com/edit/angular-mat-select-deferred-loading?file=app%2Fselect-deferred-example.ts

    基本上我给选择一个带有加载微调器的临时虚拟选项,而我去获取我想要的选项,然后我将它们分到选择中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-16
      • 2020-02-29
      • 2016-10-18
      • 2020-02-06
      • 2021-04-11
      • 2018-02-03
      相关资源
      最近更新 更多