primeng - 一次仅选择一个复选框项目

4 primeng angular

是否可以将 primeng 的复选框模块配置为选择框,例如用户一次只能选择一个复选框?

我的组件:

<div class="ui-g" style="width:250px;margin-bottom:10px">
    <div class="ui-g-12"><p-checkbox name="group1" value="New York" label="New York" [(ngModel)]="selectedCities" inputId="ny"></p-checkbox></div>
    <div class="ui-g-12"><p-checkbox name="group1" value="San Francisco" label="San Francisco" [(ngModel)]="selectedCities" inputId="sf"></p-checkbox></div>
    <div class="ui-g-12"><p-checkbox name="group1" value="Los Angeles" label="Los Angeles" [(ngModel)]="selectedCities" inputId="la"></p-checkbox></div>
</div>
Run Code Online (Sandbox Code Playgroud)

工作 stackblitz示例

Gab*_*iel 5

我建议,如果您想要一个行为类似于选择框的组件,请使用 primeng 的RadioButton组件。另一方面,您也可以更改复选框的行为:

  • 您需要在每个复选框组件上使用该onChange()事件来了解用户何时单击您的复选框。
  • 用户单击复选框后,您需要存储当前元素。在你的情况下,它是const latestCity = this.selectedCities[this.selectedCities.length - 1];. 由于复选框项目作为字符串值存储在数组中,因此当前选定的项目是该数组的最后一个元素。
  • 最后,您需要清空数组并将最后选定的项目推入该空数组中:

    this.selectedCities.length = 0;

    this.selectedCities.push(latestCity);

编辑stackblitz