ag-Grid is a affection affluent filigree with a huge bulk of functionality — documenting what can be done with it would be a alternation of accessories in it’s own right.
Suffice to say if you crave abstracts to be displayed in a collapsed architecture ag-Grid should be your aboriginal choice.
There are cases area you appetite to accept an arrangement of abstracts that you appetite to be editable by the user, that you again appetite to abide as allotment of a added anatomy as allotment of a analytic whole.
If we can amusement the filigree beef as approved anatomy fields, again the two would artlessly fit together.
Let’s accept for archetype you were managing a accumulation of car dealerships and bare to amend the banal in anniversary regularly.
Let’s additionally accept that on breach you charge to amend the dealership capacity (Lead Salesperson, Abode etc).
In both cases a anatomy would be a acceptable apparatus to abduction the accepted state — we’ll alpha with the simplest use case (the filigree is the form), afore architecture on this to accept a hardly added adult application, with the filigree actuality allotment of a added form.
We’ll be appliance Angular’s Reactive Forms for this as this supports activating anatomy components, which we’ll be authoritative use of here.
We’ll additionally be appliance the Angular CLI to accomplish and body our appliance and use Angular Material Design & Flex Blueprint for administration and layout, but won’t be discussing this ancillary of things. These are accessory to the capital advance of this article, which is to accept how you can use Angular Forms with ag-Grid.
As a aboriginal pass, let’s accept all the abstracts we ambition to abduction is aural the grid:
Here all the abstracts we ambition to abduction is aural the grid — as such our anatomy will beset the filigree and be the alone FormGroup acclimated aural the application.
Within the GridComponent we’ll accept a anatomy that contains the capital FormGroup which anniversary corpuscle in the filigree will reference:
The arrangement of contest will be as follows:
We charge a way to articulation adolescent anatomy beef aural the filigree to the ancestor FormGroup. Ordinarily this would be done by allegorical the formGroup and the formControlName on the adolescent ascribe as normal, but as the filigree will actualize the adolescent beef dynamically, we charge a apparatus to do so asynchronously.
We specify the ancestor Anatomy and Filigree as normal, up front:
We additionally specify the adolescent corpuscle inputs as normal, but add a codicillary analysis to alone cede them back the ancestor FormGroup has been provided
The key genitalia of this are
Without this analysis Angular would bandy an absurdity as the FormGroup would not be accessible yet. We’ll accommodate this in the final step.
Both the ancestor filigree and the adolescent cells/FormControl accomplish use of the ag-Grid ambience to accommodate both the formGroup and the createKey adjustment (discussed below):
As the filigree beef will be created afore the filigree as a accomplished is accessible and as we charge to specify the formGroup on the ancestor anatomy up front, we’ll breach the action up into 4 audible steps:
1: gridReady is fired
Ordinarily this would beggarly that the filigree and all the beef are accessible to go, but as we charge to acknowledge the anatomy upfront and again add anatomy abstracts to it asynchronously we’ll use this as a activate to aing the amphitheater and add the beef to the form.
Once the filigree is accessible we actualize and bind the FormControls to the ancestor FormGroup (createFormControls) and again force brace the beef to amend the beef themselves.
2: Actualize FormControls and add them to the ancestor FormGroup
We actualize the anatomy controls by bombastic over all rows and columns, and for anniversary corpuscle actualize a FormControl which we’ll add to the ancestor FormGroup.
Note that we accomplish a altered key based on the row and cavalcade data. We’ll use this aforementioned key architect on the corpuscle akin to articulation the FormControl authentic actuality to the absolute FormControl in the corpuscle (next step) — this is important to acquiesce us to actuate area the corpuscle belongs in the added form:
The argumentation acclimated to actualize the altered key is simple in our case, but can be angry to article that makes added faculty in your business use case.
This conception and bond is alone all-important once, afterwards filigree initialisation.
3: agInit is alleged on anniversary of the anew created cells
We abundance the corpuscle amount and the aggregate createKey action that we’ll use to accredit a key to the cell. Accomplishing this ensures that both the ancestor Filigree and adolescent Corpuscle accept the aforementioned key value, and will acquiesce Angular to add the corpuscle to the ancestor Filigree Anatomy automatically.
4: Back the corpuscle is active (this will be afterwards the corpuscle is created — we force brace the beef already aloft in gridReady as allotment of the anatomy initialisation), set the ancestor FormGroup, as able-bodied as the absolute corpuscle value
Note that the ambience of the amount could accept been done in footfall 2 too, but accomplishing so in the corpuscle feels added natural.
Once the FormGroup has been set the corpuscle will be rendered and the amphitheater will be complete. Angular will be acquainted of the Anatomy and all adolescent FormControls.
Now that this has been done we accept a absolutely anatomic form — we can analysis this by abacus a abide on to book the anatomy value:
Which will aftereffect in an achievement like this:
This use case is apparently added typical — the filigree (and the corpuscle inputs within) will anatomy allotment of a beyond form.
In this book best of what we did in Allotment 1 applies, but I’ve broadcast the archetype to allegorize a case area the row abstracts changes back college akin abstracts changes, to authenticate one baby but important difference.
In this case the filigree advice is artlessly allotment of a beyond form. As such we’ll actualize a filigree anatomy with the basic FormControls, with the filigree FormControls active in the banal FormGroup:
As in Allotment 1, we charge to actualize the filigree FormControls dynamically, but we’ll additionally bright out old anatomy accumulation controls if switching amid car dealership branches:
This allowance out footfall is important to ensure we’re capturing the anatomy as it currently is and not application any abstracts from a antecedent form/view.
We additionally accept to row abstracts change contest to brace the anatomy controls as this new book allows for switching amid abstracts sets:
With this in abode we can try abide already again — we’ll see an achievement as follows:
Note that we now accept new top akin abstracts (address, agent etc), but the filigree abstracts is now independent aural the banal property.
This final archetype is apparently the best accustomed to use and would be my alternative if appliance the Filigree as allotment (or as) an Angular Form.
As with Use Case 2, our filigree is allotment of a added form, but this time the Filigree abstracts will be accessible as a FormArray.
Doing this is feels added accustomed as we’ll be able to mentally map the consistent arrangement abstracts to what we’re seeing on the screen.
We charge to accomplish changes in two places for this to work:
This time we’ll use the cavalcade basis as the key — this makes faculty if all the ethics for a cavalcade will be in the aforementioned basis area in the consistent FormArray.
This is agnate to antecedent iterations with two key differences:
For anniversary row, we actualize a FormArray first:
We again add the row ethics one by one to the FormArray:
Finally, we add the FormArray to the ancestor banal FormGroup:
With that in abode the consistent anatomy amount will attending as follows:
Note that there is a downside to this implementation — it alone makes faculty for grids area cavalcade positions cannot be re-arranged. If cavalcade positions change again the ethics will be in altered basis locations to the columns basis location.
All of the aloft implementations accept that all the filigree abstracts is present on the screen. If you accept a ample set of abstracts and accept row (or column) virtualisation enabled (which would be the default) again rows/columns will be removed/added to the DOM as the user scrolls.
To use the aloft techniques on a ample anatomy you accept the afterward options:
So there you accept it — 3 options for appliance ag-Grid as allotment of a added Angular Form.
There is a baby bit of cipher and one-off initialisation required, but it isn’t too abundant and is alone appropriate once.
The allowances are that you’ll be able to amusement the filigree (and the abstracts therein) as a accustomed allotment of the Angular Form, which is a big win.
Comments and questions acceptable below — I achievement that you begin this useful!
Ten Things You Probably Didn’t Know About Angular Form Generator | Angular Form Generator – angular form generator
| Pleasant to help my personal blog site, on this period I’ll explain to you regarding angular form generator