直接加[disabled]="isDisabled"屬性的話,出現報錯this
根據提示,作以下修改url
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}] }); }
<!--雙向綁定,控制輸入框的是否禁用屬性-->
<input class="text-big" type="text" [(ngModel)]="roleParams.roleName" formControlName="roleName">