angular - primeng - 一次只选择一个复选框项目

标签 angular primeng

是否可以配置 primeng 的 checkbox module表现得像一个选择框,例如用户一次只能选择一个复选框?

我的组件:

<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>

工作 stackblitz example .

最佳答案

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

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

    this.selectedCities.length = 0;

    this.selectedCities.push(latestCity);

已编辑 stackblitz .

关于angular - primeng - 一次只选择一个复选框项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49597683/

相关文章:

angular - 在 PrimeNG 中单击多选下拉列表中的字段时禁用多选下拉关闭

angular - PrimeNG 动态列过滤

node.js - 在 Express 中有条件地提供静态文件的最佳方式是什么?

Angular 2 模型函数插值 - self.context.$implicit.X 不是函数

使用子项的 Angular 8 嵌套路由和最多三级的相应路由模块不起作用

css - 从 Bootstrap 应用 css 类时的 PrimeNG 日历错误

Angular 2/PrimeNg - 通过@ViewChild 更新图表

Angular 5 延迟加载错误 : Cannot find module

angular - 如何使用 API 获取数据来初始化图表?

angular - p-dataTable 行上的鼠标悬停事件 (primeNg)