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>