Angular 根据某些条件禁用字段

Angular 根据某些条件禁用字段,angular,Angular,我想根据以下条件禁用我的字段,但它不起作用 <select class="floating-select" value="" formControlName="systemId" [disabled]="loginSysId!='Admin'"> <option *ngFor="let val of systemId" [ngValue]="val">{{val}}</option> </select>

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

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

{{val}}

如果loginSysId!=“Admin”,我是angular的新手。

下面是最基本的版本。从这个开始,然后一次添加一个属性(添加css类,然后添加formControlName等)

可能是您的formgroup在代码中启用了“systemId”。奇怪的是,您的“*ngFor=“let val of systemId”似乎不是指数组?它不应该是systemIds

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

A.
B
C

您必须使用disabled属性并将您的条件放在那里

html文件

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

你可以这样验证

组成部分

export class AppComponent  {

  loginSysId = 'Admin';
  items =  [

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

}
HTML


{{i.name}

更新1:

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

{{i.name}

如果您将[disabled]=“true”作为测试,您的控件是否被禁用?否,问题出在哪里使用
!==
[disabled]=“loginSysId!”Admin'
使用chrome的检查器查看生成的htmlI我认为这可能有效,但我想禁用整个元素你是说整个选择元素是的,整个元素“loginSysId”有哪个值?你能检查一下吗?如果你的变量存储了“Admin”并且你验证了“Admin”,它就不起作用了。不,我试过使用[disabled]=“true”,这也不行。你能给我们一个TS文件的预览吗?
<select type="number">
<option [disabled]="i.name == loginSysId" *ngFor="let i of items" [ngValue]="i.name">{{i.name}}</option>
<select type="number" [disabled]="loginSysId == 'Admin'">
    <option [disabled]="i.name == loginSysId" *ngFor="let i of items" [ngValue]="i.name">{{i.name}}</option>
</select>