Angular 如何仅禁用带有角2的列表中的选项?

Angular 如何仅禁用带有角2的列表中的选项?,angular,Angular,我有一个单选按钮列表: <label *ngFor="let obj of RecipientType;let i = index" class="radio-inline"> <input formControlName="recipientType" type="radio" [value]="obj.id" name="recipientType" (change)="onRecipientChange(obj.id,$event)"

我有一个单选按钮列表:

 <label *ngFor="let obj of RecipientType;let i = index"    class="radio-inline">
     <input formControlName="recipientType" type="radio" [value]="obj.id" name="recipientType" 
         (change)="onRecipientChange(obj.id,$event)">                       
 </label>

此列表有3项。 如何仅禁用第三个选项? 我试着做这样的:
[disabled]=“obj.id==3”
,但是我可以看到所有单选按钮都被禁用了。我只想要第三个

我该怎么做

谢谢


<label *ngFor="let obj of RecipientType;let i = index"    class="radio-inline">
    <input formControlName="recipientType" type="radio" [value]="obj.id" name="recipientType" 
     (change)="onRecipientChange(obj.id,$event)" [disabled]="i===2'>                       
</label>


在被动形式中,通常使用的
[disabled]=“obj.id==3”
[disabled]=“i==2”
不起作用

因为我不知道有哪种解决方案可以使用反应式表单,所以只需禁用组中的一个单选按钮。以下方法确实有效,尽管它与反应形式无关:

让我们使用
document.getElementById
,通过使用索引为所有单选按钮分配一个唯一的id。然后让我们禁用索引为
2

因此,输入字段使用您在迭代中声明为索引值的
{{i}}
添加了一个
id
属性:


例如,在生命周期钩子
AfterViewInit
中,让我们使用索引
2
禁用输入字段:

ngAfterViewInit(){
document.getElementById('2')。disabled=true;
}
这里有一个


在被动形式中,通常使用的
[disabled]=“obj.id==3”
[disabled]=“i==2”
不起作用

因为我不知道有哪种解决方案可以使用反应式表单,所以只需禁用组中的一个单选按钮。以下方法确实有效,尽管它与反应形式无关:

让我们使用
document.getElementById
,通过使用索引为所有单选按钮分配一个唯一的id。然后让我们禁用索引为
2

因此,输入字段使用您在迭代中声明为索引值的
{{i}}
添加了一个
id
属性:


例如,在生命周期钩子
AfterViewInit
中,让我们使用索引
2
禁用输入字段:

ngAfterViewInit(){
document.getElementById('2')。disabled=true;
}
这里有一个


由于ìndex从
0开始
它应该是
[禁用]=“i==2”
不幸的是它不工作?你能做一个plunkr吗?@AdrianBalasa这个答案不适用于反应式表单,所以不要担心plunker:)既然ìndex开始于
0
它应该是
[禁用]=“i==2”
不幸的是它不起作用?你能做一个plunkr吗?@AdrianBalasa这个答案不适用于被动形式,所以不要担心plunkr:)你为什么不用一个
来包装
元素,然后对特殊输入做你想做的。你为什么不用一个
来包装
元素呢,然后对特殊输入执行您想要执行的操作。