在这种情况下最好使用radio 按钮。
但您可以通过编程方式控制checkbox 的行为,因此一次只能选中一个复选框。
你可以看看这个demo,这可能对你有帮助
模板文件
<ul>
<ng-container *ngFor="let item of items">
<li>
<input
type="checkbox"
[value]="item.value"
[checked]="item.isChecked"
(change)="onChange($event);"
> {{item.label}}
</li>
</ng-container>
</ul>
类文件:
在item 列表中维护一个 isChecked 属性并将其绑定到检查input 元素中的attribute,然后在使用更改更改处理程序时在输入元素上绑定change 事件,即onChange 将触发,然后迭代在项目上并重新初始化 isChecked 属性期望当前检查项目。
items = [
{'label': 'A', 'value': 'A', isChecked: false},
{'label': 'B', 'value': 'B', isChecked: false},
{'label': 'C', 'value': 'C', isChecked: false},
{'label': 'D', 'value': 'D', isChecked: false},
{'label': 'E', 'value': 'E', isChecked: false},
{'label': 'F', 'value': 'F', isChecked: false},
{'label': 'G', 'value': 'G', isChecked: false}
];
onChange(event: any) {
const {checked, value} = event.target;
let index = this.items.length;
while(index--) {
this.items[index].isChecked = value === this.items[index]['value'];
}
}