ng-zorro tree-select 控件 [(ngModel)]绑定的值改变后同步失败

发布于 2022-09-07 21:35:59 字数 1094 浏览 15 评论 0

问题描述

使用<tree-select>控件复选功能时,[(ngModel)]绑定的变量值通过输入流传入,当传入的值改变时,tree-select控件显示选中的节点只会增加,不会减少

问题出现的环境背景及自己尝试过哪些方法

尝试在监听到[(ngModel)]绑定值变化后,通过[(ngModel)]绑定值更新节点的选中状态。可以使<tree-select>的展开部分勾选显示正确,但输入框显示所选的节点值没有反应,且再次手动选择其他节点时,之前取消的节点再次被选中

相关代码

<nz-tree-select
[nzDefaultExpandAll]="true"
[nzNodes]="nodes"
[nzPlaceHolder]="please choose"
[(ngModel)]="selectData"
[nzMultiple]="true"
(ngModelChange)="onSelect($event)" name="treeSelect">
</nz-tree-select>

if (changes.selectNodes) {
  this.selectData = this.selectNodes;
  this.updateSelectStatus(this.nodes, this.selectNodes);
}

public updateSelectStatus(treeData, selectKeys) {
for (const item of treeData) {
  item.isSelected = (_.indexOf(selectKeys, item.key) !== -1) ? true : false;

  if (item.children.length) {
    this.updateSelectStatus(item.children, selectKeys);
  }
}

}

你期待的结果是什么?实际看到的错误信息又是什么?

[(ngModel)]绑定值变化后,<tree-select>显示正确,直接点击<tree-select>节点时,也选择正确

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文