10

请通过链接(https://ng-select.github.io/ng-select#/multiselect-checkbox)了解 ng-select 多选复选框。

我正在尝试在我的 Angular 6 应用程序中使用 ng-select “组选择子项” 。

我在使用带有反应式表单而不是模板驱动表单的ng-select “组选择子项”时遇到问题。

我已经厌倦了

<ng-select
          [items]="userGroupsList"
          [multiple]="true"
          bindLabel="name"
          groupBy="gender"
          [selectableGroup]="true"
          [selectableGroupAsModel]="false"
          [closeOnSelect]="false"
          bindValue="id"
          formControlName="userGroups" placeholder="Select a user group">
            <ng-template ng-optgroup-tmp let-item="item" let-item$="item$" let-index="index">
                <input id="item-{{index}}" type="checkbox" [(ngModel)]="" formControlName="userGroupParent"/> {{item.gender | uppercase}}
            </ng-template>
            <ng-template ng-option-tmp let-item="item" let-item$="item$" let-index="index">
                <input id="item-{{index}}" type="checkbox" [(ngModel)]="" formControlName="userGroupChild"/> {{item.name}}
            </ng-template>
        </ng-select>

我使用了多选复选框的相同数据-- [items]="userGroupsList"

https://github.com/ng-select/ng-select/blob/master/demo/app/shared/data.service.ts -- getMockPeople() 有数据

所以在这里我可以在输入上使用 [(ngModel)] 以及 formControlName 在选择父元素时如何选择子元素,如示例中所示

请帮忙....!

4

2 回答 2

13

要使其与 formGroup 一起工作:将 formControlName 保留在 ng-select 谁将绑定到您的 formGroup。

问题是模板中的那些输入。对我来说,最好的解决方案是继续使用示例中的 ngModel。但是您必须让角度理解这与 fromGroup 无关,因此您可以在其上添加独立选项。

<input id="item-{{index}}" type="checkbox" [(ngModel)]="item$.selected" [ngModelOptions]="{ standalone : true }" />
于 2018-09-23T12:04:31.433 回答
11

如果没有 ngModel ,还有另一种方法可以做到这一点:

<input id="item-{{index}}" type="checkbox" [checked]="item$.selected" /> 
于 2018-11-20T03:27:16.810 回答