根据某些条件禁用字段

时间:2018-07-19 12:42:45

标签: angular

我想根据以下条件禁用我的字段,但是它不起作用

 <select class="floating-select" value="" formControlName="systemId" [disabled]="loginSysId!='Admin'">
            <option *ngFor="let val of systemId" [ngValue]="val">{{val}}</option>
          </select>

如果loginSysId!=“ Admin”,则必须禁用,我是angular用户。

3 个答案:

答案 0 :(得分:0)

下面的

是最基本的版本。首先,然后一次添加更多的属性(添加css类,然后添加formControlName等)

可能是您的表单组在代码中启用了“ systemId”。您的“ * ngFor =“让systemId的val值”似乎没有指向数组似乎很奇怪?难道不是systemId s 吗?

        <select [disabled]="true">
            <option [value]="a">a</option>
            <option [value]="b">b</option>
            <option [value]="c">c</option>
        </select>

答案 1 :(得分:0)

您必须使用Disabled属性并将条件放在此处。

html文件

<select [disabled]="loginSysId == 'admin'">
  <option value=1>test</option>
  <option value=2>test x2</option>
</select>

ts瓷砖

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  name = 'Angular 6';
  loginSysId = 'admin';
}

答案 2 :(得分:0)

检查一下

您可以这样验证

组件

export class AppComponent  {

  loginSysId = 'Admin';
  items =  [

      {name:"Client"},
      {name:"Customer"},
      {name:"Admin"}
   ];

}

HTML

<select type="number">
<option [disabled]="i.name == loginSysId" *ngFor="let i of items" [ngValue]="i.name">{{i.name}}</option>

SLACKBlitz

更新1:

<select type="number" [disabled]="loginSysId == 'Admin'">
    <option [disabled]="i.name == loginSysId" *ngFor="let i of items" [ngValue]="i.name">{{i.name}}</option>
</select>

Slackblitz