angular4 form 表单中 input输入框的disabled属性 (实用)

本文介绍如何在Angular中根据条件动态禁用表单输入字段,通过实例展示了如何使用布尔变量控制表单状态,实现添加和编辑模式下表单的不同表现。

原文出处:https://www.cnblogs.com/leiting/p/8603604.html

直接加[disabled]="isDisabled"属性的话,出现报错

根据提示,做如下修改
ts

private isEdit: boolean = true;
private isDisabled = true;
private myForm: FormGroup;

private roleParams = {
roleName:'',
items:['全部权限']
}

ngOnInit() {
    this.routerIonfo.params.subscribe((params: Params) => { // 如果想要获取查询参数中的值例如 /index?id=1 把这一句的params换成queryParams就好了,取的方法和下面一样
  // 这里是从url参数中取参数的方法,获取的是后面的值如 /page/0 获取的是参数值0
    this.isEdit = Number(params['id']) !== 0; // 0:添加,!0编辑
    this.roleParams.roleName = params['id'];
});
    this.createOrEdit();
    this.creatForm();
}

createOrEdit(){
    if(this.isEdit){ // 如果是编辑的时候,就禁用掉该输入框
    this.isDisabled = true;
    return;
}
    this.isDisabled = false;
    this.creatForm();
}

// 在初始化表单的时候设置表单中input的属性值,禁用的话 disabled:true
creatForm() {
    this.myForm = this.fb.group({
      roleName:[{ value:this.roleParams.roleName,disabled:this.isDisabled}]
    });
  }

html

<!--双向绑定,控制输入框的是否禁用属性-->
<input class="text-big" type="text" [(ngModel)]="roleParams.roleName" formControlName="roleName"> 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值