Angular ngx treeview中的限制选择

Angular ngx treeview中的限制选择,angular,checkbox,limit,selection,ngx-treeview,Angular,Checkbox,Limit,Selection,Ngx Treeview,我从事过以下工作: 经过一些修改后,我试图限制选择的数量。然而,我面临着两个问题。我可以限制我的选择,但当超过限制时,我不能删除签入复选框 以下是我的作品: <div class="container-fluid d-flex flex-column"> <ng-template #itemTemplate let-item="item" let-onCollapseExpand="onCollapseExpand" let-onCheckedChang

我从事过以下工作:

经过一些修改后,我试图限制选择的数量。然而,我面临着两个问题。我可以限制我的选择,但当超过限制时,我不能删除签入复选框

以下是我的作品:

<div class="container-fluid d-flex flex-column">
    <ng-template #itemTemplate let-item="item" let-onCollapseExpand="onCollapseExpand"
        let-onCheckedChange="onCheckedChange">
        <div class="form-inline row-item">
            <i *ngIf="item.children" (click)="onCollapseExpand()" aria-hidden="true" class="fa"
                [class.fa-caret-right]="item.collapsed" [class.fa-caret-down]="!item.collapsed"></i>
            <div class="form-check">
                <input type="checkbox" class="form-check-input" [(ngModel)]="item.checked"
                    (ngModelChange)="onCheckedChange();" [disabled]="item.disabled"
                    [indeterminate]="item.indeterminate" />
                <label class="form-check-label" (click)="onCheckedChange();selectItem(item)">
                    {{item.text}} {{item.checked}}
                </label>
            </div>
        </div>
    </ng-template>
    <div class="row d-flex flex-grow-1 of-auto">
        <div class="col-3 d-flex flex-column">
            <div class="form-group">
                <ngx-treeview [config]="config" [items]="items" [itemTemplate]="itemTemplate"
                    (selectedChange)="onSelectedChange($event)">
                </ngx-treeview>
            </div>
        </div>
    </div>
</div>
我在html部分中检查了真/假值,结果很好。仍然选中复选框。 我还需要一些家长选择方面的帮助。超过选择限制时,父选择将变为真,直到选择该父选择的一个子选择为止

你对那个问题有什么解决办法吗

onSelectedChange(downlineItems: DownlineTreeviewItem[]) {
    this.selectedItems = [];
    downlineItems.forEach(downlineItem => {
      const item = downlineItem.item;
      this.selectedItems.push(item.value);
      this.selectItem(item);
    });
}

selectItem(item) {
    if (this.selectedItems.length > 2) {
      this.selectedItems.pop();
      item.checked = false;
    }
}