【问题标题】:Not able to set checkboxes based on saved results from DB无法根据数据库中保存的结果设置复选框
【发布时间】:2021-12-10 04:14:18
【问题描述】:

.ts 文件: 编辑用户(用户数据:用户):无效 {

let selectedProjectIdsList = userData.projectIds.split(',')

for (let i = 0; i < selectedProjectIdsList.length; i++) {
  this.projects
    .filter((x) => x._id == selectedProjectIdsList[i])
    .map((x) => (x.selected = true))

  console.log(
    this.projects
      .filter((x) => x._id == selectedProjectIdsList[i])
      .map((x) => (x.selected = true)),
  )
}

.html 文件:

<ul class="list-group list-row">
  <li class="list-group-item" *ngFor="let item of projects">
    <input
      class="form-check-input me-1"
      type="checkbox"
      value="item._id"
      (change)="onChangeProject()"
      [(ngModel)]="item.selected"
      name="selected"
    />
    {{ item.projectName }} | {{ item.buName }} |`enter code here`
    {{ item.reporter }}
  </li>
</ul>

注意:从后端获得 API 响应后,它检查了所有复选框

【问题讨论】:

  • 尝试绑定到复选框输入元素上的选中属性。
  • 它不工作

标签: angular spring spring-boot checkbox


【解决方案1】:
  1. 如果您使用的是[(ngModel)],则不应使用value,反之亦然。
  2. 您的value 没有与变量绑定,而是与字符串绑定

-> 这将始终对应于 checked 复选框,因为该值不为空 -> 视为“真”

<input type="checkbox" value="item._id" name="selected" />

-> 这将与您的变量绑定,然后根据变量的值显示复选框。然后使用您的onChangeProject() 在其他地方更新您的变量。

<input type="checkbox" [value]="item._id" name="selected (change)="onChangeProject()" />

->这会自动更新你的对象

<input type="checkbox" [(ngModel)]="item.selected" name="selected" />

【讨论】:

    猜你喜欢
    • 2019-07-21
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    相关资源
    最近更新 更多