【问题标题】:ngModel not updated in ng-select componentngModel 未在 ng-select 组件中更新
【发布时间】:2020-09-14 12:38:55
【问题描述】:

我的代码中有 ng-select 组件,它在 HTML 中初始化如下。

<ng-select id="SelectType" placeholder="Student" [multiple]="true"
              [items]="students" groupBy="type" [selectableGroup]="false" [(ngModel)]="selectedstudents"
              [closeOnSelect]="false" bindLabel="name" (add)="onSelectFirstDropdown($event)"
              (remove)="onRemoveFirstDropdown($event.value)">

我从下拉列表中选择了多名学生,在对 ts 文件进行一些修改后,我想在“selectedstudents”列表中删除一名学生。但是,当我从列表中删除该项目时,它不会更新为 ng-select 并且项目仍然在下拉列表中保持选中状态。我该如何解决这个问题? 谢谢

【问题讨论】:

  • 添加更多信息,展示您的课程。假设 ChangeDetectionStrategy 是 onPush...
  • 您是如何从 selectedstudents 中删除项目的?你得到一个新数组还是同一个实例?如果相同的实例,则创建一个新的:this.selectedstudents = [...this.selectedstudents];

标签: angular select dropdown angular2-forms angular-ngselect


【解决方案1】:

要在运行时从ngModel 动态添加/删除项目,您必须创建模型对象的新实例,然后您可以从中添加/删除项目;否则,角度不会检测到变化。

创建selectedstudents 的新实例 -

this.selectedstudents = [...this.selectedstudents];

selectedstudents 中删除项目-

this.selectedstudents.pop()

【讨论】:

    猜你喜欢
    • 2021-10-16
    • 2018-07-15
    • 2015-04-14
    • 2023-04-02
    • 2023-04-02
    • 1970-01-01
    • 2021-06-02
    • 2019-07-16
    • 2016-06-05
    相关资源
    最近更新 更多