angular-material - 更改 matInput 的禁用属性值

标签 angular-material angular6 angular-material2 metronic

我有一个与现有问题相关的问题

无法使用 this 禁用 matInput 元素

建议的答案效果很好:

ngOnInit() {
this.form = this.fb.group({
    name: new FormControl({ value: '', disabled: this.disabled })
});

但是当我将 this.disabled 值更改为 true 时 - 禁用属性不会更改。有没有办法更改 matInput 的 disabled 属性?

最佳答案

您不能使用该表单,因为当您创建 FormControl 时,您将传递该值,在您的情况下为 this.disabled 的值。您没有绑定(bind)属性,您只是传递一个值来进行一些检查,该值不反射(reflect)输入属性的更改。

您无法通过这种方式实现您的目标,您需要手动启用和禁用您的输入,如下所示:

let control = this.form.get('name')
control.disabled ? control.enable() : control.disable();

显然,您可以将其直接放入模板中的点击事件中,如下所示:

<button (click)="this.form.get('name').enable()">Enable</button>

关于angular-material - 更改 matInput 的禁用属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52253793/

相关文章:

angular - 如何为 Angular Material 分页器添加 'All' 选项?

angular6 - tr 元素的 Angular 6/TSLint 组件选择器

arrays - 在 Array Angular 和 Typescript 中查找最小和最大元素

angular-material2 - Angular Material 2 组件中的 `cdk` 是什么

html - 如何设置mat-autocomplete中的元素数

html - 在 Angular 中,不会为 angular mat-option 调用 onSelectionChange

angular - Material 日期-fns 适配器

html - 有没有办法突出显示点击的 mat-grid-tile?当动态生成每个 mat-grid-tile 时

html - 带工具栏的 Angular 全屏布局

javascript - Angular/Material 中的样式化 mat-form-field 输入