【问题标题】:How to change visiblity of the Angular-material2 control?如何更改 Angular-material 2 控件的可见性?
【发布时间】:2020-04-25 21:18:54
【问题描述】:

我的表单上有很多控件。我为我的控件评估了一些规则。当某些控件的visiblityExpression 将被评估为 false 时,我想让控件不可见。

this.formControl 来自AbstractControl。 我可以调用什么方法使其对用户不可见?

我想做这样的事情: if(result === false) this.formControl.hide();

【问题讨论】:

    标签: angular angular-material2


    【解决方案1】:

    我认为带有布尔变量 isVisible 的表单顶部的 [hidden] 指令应该可以解决问题:

    [hidden]="formControl.isVisible"
    

    Plunker 隐藏文本框的示例。这同样适用于整体控制。我个人认为使用 *ngIf 从 DOM 中移除控制比隐藏它更好。

    【讨论】:

    • 我可以从 html 模板和任何其他组件文件之外添加指令吗?我希望能够隐藏它只是对控件的引用。例如this.formControl.disable() 禁用控件。我的例子比我在这里展示的要复杂得多......这是有原因的。
    • 不幸的是,这不是那么简单,但是...您可以尝试为您的组件创建通信服务。将带有布尔变量的 [hidden] 放在表单标记的顶部,并从服务调用函数中调用例如 disable() 函数在您具有表单控制的组件中。调用后禁用功能将更改变量真/假,并以相同的方式隐藏/显示表单。您可以使用 Observable 注册服务方法,然后使用表单控件监听组件中的任何状态变化。
    猜你喜欢
    • 2023-04-09
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 2020-03-25
    相关资源
    最近更新 更多