ng-select multi select checkbox with reactive forms in angular 6
Asked Answered
A

3

11

Please go through the link(https://ng-select.github.io/ng-select#/multiselect-checkbox) to know ng-select multi select checkbox.

I am trying to use the ng-select "Group selects children" in my angular 6 application.

I am having problem using ng-select "Group selects children" with Reactive Forms instead of template driven forms.

I have tired it as

<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>

I have used the same data of the multiselect-checkbox-- [items]="userGroupsList"

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

So here can i use the [(ngModel)] as well as formControlName on the input how can i child elements are selected when the parent is select as in the example

Please help....!

Amphibious answered 19/9, 2018 at 18:2 Comment(8)
Can you provide some example of what you already tried to do ? This component seem to work like a normal componentBitstock
i have edited the question.. xrobert35. Please help..!Amphibious
It dont really have sens to use formControlName in the group or option template here. Why do you want to do that ?Bitstock
By the way it's look like you don't really have understand how the template work but let-item$="item$"* in an option value or a group value that you must in your input with [ngModel] like in the exemple [ngModel]="item$.selected". So if your question is to know if you can use formControlName for you "input" for me it's noBitstock
Thanks for the reply, But my question is that if i can't use the formControlName then which directive would help me to achieve this kind of functionality.Amphibious
What kind of functionnality ? I understand that you want make the component work like in the example but in a different way (which doesn't work). So for me you just have to follow the example and use ngModelBitstock
I want to use Multiselect Checbox with reactive form "fileControlName" when i use the [ngModel]="item$.selected" i get the below error: ** ngModel cannot be used to register form controls with a parent formGroup directive. Try using formGroup's partner directive "formControlName" instead. **Amphibious
Ah it make things a clearer. You can update your question with this.Bitstock
B
15

To make this work with formGroup : keep the formControlName on the ng-select who will be bind to your formGroup.

The problem is those input in the template. For me the best solution is to keep using ngModel like in the example. But you must make angular understand that is as nothing to do with the fromGroup so you can add the option standalone on it.

<input id="item-{{index}}" type="checkbox" [(ngModel)]="item$.selected" [ngModelOptions]="{ standalone : true }" />
Bitstock answered 23/9, 2018 at 12:4 Comment(2)
Thanks a lot....! xrobert. By using [ngModelOptions]="{ standalone : true }" to <ng-template> its working fine...Amphibious
No problem :). Like I told you, you should have write the error you get in the console in the question ;)Bitstock
P
11

There is an other way to do that without the ngModel :

<input id="item-{{index}}" type="checkbox" [checked]="item$.selected" /> 
Palestrina answered 20/11, 2018 at 3:27 Comment(0)
P
0

My dropdown item was not getting selected on clicking the item in the dropdown, it was only getting checked on clicking on the checkbox. This worked for me thanks

Pulsation answered 6/8, 2022 at 5:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.