Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • May 25 23:40
    TYee71384 closed #3307
  • May 25 23:40
    TYee71384 commented #3307
  • May 25 16:54
    InnovativeUS opened #3311
  • May 25 16:54
    InnovativeUS labeled #3311
  • May 25 16:42
    cviolbarbosa commented #3292
  • May 25 11:56
    aitboudad commented #3310
  • May 25 11:56

    aitboudad on main

    docs: fix v6 documentation (#33… (compare)

  • May 25 11:56
    aitboudad closed #3310
  • May 25 11:32
    netlify[bot] commented #3310
  • May 25 11:30
    FritzHerbers commented on 057dcce
  • May 25 11:26
    FritzHerbers opened #3310
  • May 25 09:31
    aitboudad commented on 057dcce
  • May 25 09:09
    FritzHerbers commented on 057dcce
  • May 25 06:48
    ip1211 labeled #3309
  • May 25 06:48
    ip1211 opened #3309
  • May 24 11:08
    aitboudad closed #3308
  • May 24 11:08
    aitboudad commented #3308
  • May 24 11:04
    aitboudad commented #3272
  • May 23 15:45
    MaxKless commented #3307
  • May 23 14:03
    MarlonLuan labeled #3308
Ash McConnell
@AshMcConnell_twitter
Got the issue, I was using the same form for 2 parts of the page (I thought that would work)
Stack 0
@StekovicN_twitter
Hei @aitboudad why does validation remain on the field when we re-render it to the DOM, am i doing something wrong? Made small stackblitz demo to demonstrate https://stackblitz.com/edit/angular-gpnlq9-12goss?file=src/app/app.component.ts . You can see that validation is set first field only, but it remains on second even though it does not have validation set to it... not sure if this is expected?
4 replies
Stack 0
@StekovicN_twitter
i get it, it observes the same key :/ once we change key, it changes validator and everything works fine
Stack 0
@StekovicN_twitter
how can we achieve having same key instead of doing dirty hacks? :)
anushreenk
@anushreenk
he wrapper "fieldset" could not be found. Please make sure that is registered through the FormlyModule declaration. Why i must be getting issue
Is date range picker is possible in ngx-formly
anushreenk
@anushreenk
image.png
image.png
image.png
can someone help why I am getting the error
what wrong i am doing @aitboudad
Stack 0
@StekovicN_twitter
@anushreenk wrapper: ["label"] does not exist... you just wrote it there but it is not registered... you need to make wrapper and register it like this https://github.com/ngx-formly/ngx-formly/blob/main/src/ui/bootstrap/form-field/src/form-field.module.ts
anushreenk
@anushreenk
but how its working in this exampple
anushreenk
@anushreenk
@StekovicN_twitter Thanks I have created the wrapper and included that in my module.It worked for me
BukicMicko
@BukicMicko

@aitboudad is it possible to provide functions as string for expressionProperties and then evaluate them as function where we need to use. Something like

              this.fieldConfig.hideExpression =
                 '(model: any, formState: any, field: FormlyFieldConfig) => { if (this.fieldConfig.model.value) { return !( formState.mainModel[this.fieldConfig.model.component] && formState.mainModel[this.fieldConfig.model.component] === this.fieldConfig.model.value ); } else {  return !formState.mainModel[this.fieldConfig.model.component];  } },';

Idea is to use string for expression props and then evaluate with typescript something like:
https://stackoverflow.com/questions/45153848/evaluate-typescript-from-string
thing is i need to interpolate values from this inside string like this.fieldConfig.model.value.. etc.. If i first try to execute logic simply as function and then try to stringify

this.fieldConfig.expressionProperties = JSON.stringify(this.fieldConfig.expressionProperties);

ngx formly of course complains cause we cannot use string for hideExpression.

1 reply
farakk
@farakk

@aitboudad. Please I want to click on any step and fire (selectionChange)="selectionChanged($event)".

<mat-horizontal-stepper (selectionChange)="selectionChanged($event)" #stepperauto>
<mat-step *ngFor="let step of field.fieldGroup; let index = index; let last = last;">
<ng-template matStepLabel>
{{ step.templateOptions.label}}
</ng-template>
<router-outlet *ngIf="index === selectedStep"></router-outlet>
</mat-step>
</mat-horizontal-stepper>

public selectedStep: number = 0;
steps: any[];
data : any[];
fields: FormlyFieldConfig[];

ngOnInit() {

 ////this.steps = this.route.snapshot.routeConfig.children.map(child  => { return child.path });  //breaking

this.steps = this.route.snapshot.data.children.map(child  => { return child.path }); //breaking
let step = this.field.fieldGroup[0];
this.router.navigate([step], { relativeTo: this.route });

}

selectionChanged(event: any) {
this.selectedStep = event.selectedIndex;
this.router.navigate([this.field.fieldGroup[this.selectedStep]],{relativeTo:this.route});
}

6 replies
Ash McConnell
@AshMcConnell_twitter
Hi Folks, is it possible to use formly configuration to add a directive? I tried adding it as an attribute using templateOptions, but it doesn't get picked up
Abdellatif Ait boudad
@aitboudad
@AshMcConnell_twitter not possible, Angular doesn't support that yet.
Ash McConnell
@AshMcConnell_twitter
@aitboudad thanks!
Dominic Watson
@intellix
having an issue where the this isn't correct in my expressionProperties getter
prePopulate(field: FormlyFieldConfig) {
  field.fieldGroup = [
    {
      key: 'account',
      type: 'payment-card-form',
      expressionProperties: {
        hide: () => {
          console.log(this.state);
          return this.state === 'selector';
        },
this.state is always undefined, despite being set on the class. If I set it initially, it's the initial value at construct but doesn't update
Philip
@PhilipSh
hi, anybody know how i can mark formGroup asTouched after init formly form?
i need mark invalid fields
Stefan Bakic
@sbakic
@PhilipSh It looks like you want to force validation on init form. Check this https://formly.dev/examples/validation/force-show-error
Bo
@demonbo
hello Guys, i want to ask about hideExpression in formly
is it equal to ngIf in angular or ngShow?
I'm using hideExpression and it's not remove element form DOM
Abdellatif Ait boudad
@aitboudad
@demonbo to enable that behavior set lazyRender to true, it was part of v5.10.0 release (will be enabled by default in v6)
Bo
@demonbo
@aitboudad set lazyRender in templateOption or where?
Bo
@demonbo
found where to add, thanks @aitboudad
FYI
FormlyModule.forRoot({
extras: {
lazyRender: true,
},
}),
Bo
@demonbo
@aitboudad can we set this behaviour for specific field? i do not want it apply global all formly fields
Abdellatif Ait boudad
@aitboudad
@demonbo fill an issue in Formly repo, I'll see if we can provide it in the next version
Aleix Suau
@aleixsuau
Hi all,
I've forked the repo to contribute to the docs (formlyTemplate). When running yarn demoI got a bunch of errors (e.g. Error: src/ui/primeng/checkbox/src/checkbox.module.ts:11:17 - error NG1010: Value at position 0 in the NgModule.declarations of FormlyCheckboxModule is not a reference Value could not be determined statically. or src/ui/primeng/checkbox/src/checkbox.module.ts:32:14 - error NG6002: Appears in the NgModule.imports of FormlyPrimeNGModule, but could not be resolved to an NgModule class.). Any idea of what is going on?
Thanks!
Abdellatif Ait boudad
@aitboudad

@aleixsuau not sure what's going on there 🤔, try to remove node_modules folder and use npm instead of yarn:

npm install
npm run start

the doc doesn't require running the demo, so just edit the markdown files https://github.com/ngx-formly/ngx-formly/tree/main/demo/src/app/guides in case you still having those issues

Aleix Suau
@aleixsuau
Thanks @aitboudad . I want to add an example too this is why I was trying to run the demo
Shaleen Agarwal
@shaleen76
I have created a custom element of Datepicker using https://wuschools.com/ngbdatepicker/. When the user clicks on the calendar and selects a date the date appears in YYYY-DD-MM format. I have a service contaning a formatter to format the date to MM/DD/YYYY. My question is: how can I get the value connected to the Datepicker (custom) and call my format function to format the date.
I can provide a code example, if asked.
I tried (ngModelChanges) it formats the value but not the field/model that is passed to this component.
I want to parse the date value to MM/DD/YYYY that users enters in the input field. Its a custom component. I also want to show a error message and empty the input field content if user enters invalid date format. How to achieve this? @aitboudad
farakk
@farakk

@aitboudad. Please I am getting error => TypeError: validatorOption.validation is not a function. Because we are not passing ['ip'] for validation. We are using cutom type and JSON externally, and we do not want IpValidator function. See below that actually worked in stackblitz after we edited to what we want and we removed all references to IPValidator- check @farakk/angular-vkbvjn here https://stackblitz.com/edit/angular-vkbvjn?file=app%2Fapp.component.ts But it is not working in our code {
"key": "cust",
"type": "custom",
"templateOptions": {
"label": "Custom Name",
"type":"text",
"required": true

},
"validation": {
"messages": {
"required": "Please tell us your zip code!"
}
},
"validators": {
"ip2":
{
"expression": "\control => \/\d{5}\/\.test(control\.value)\",
"message": "Not a valid IP Address"
}
}
}
ngOnInit() {
if (this.field.validators) {
JSON.parse(JSON.stringify(this.formControl
.setValidators(JSON.parse(this.field?.validators?.validation))));

Abdellatif Ait boudad
@aitboudad
@farakk the expression property does not accept a string value
farakk
@farakk
@aitboudad Thanks for responding. Maybe you can make that happen in the future. Happy holiday
Dominic Watson
@intellix
when I do a control.setValue(something) it's running validation and I can't for the life of me figure out how to mark the field as untouched:
phoneCtrl.setValue(value);
phoneCtrl.markAsPristine();
phoneCtrl.markAsUntouched();
Abdellatif Ait boudad
@aitboudad
@intellix markAsUntouched should work I think, I may help if you could provide a reproduction
1 reply
farakk
@farakk
@aitboudad I am trying not to show anything when I move to say step 3 in a stepper with 4 steps. I just want to see the PREVIOUS NEXT buttons at the bottom. So I can use only the bottom NEXT button to move to step 4
Dominic Watson
@intellix

I'm trying to create a "Master Checkbox" which allow you to toggle/untoggle checkboxes inside it: https://stackblitz.com/edit/ngx-formly-ui-material-bs8vzf?file=src%2Fapp%2Fapp.component.ts - it's rendering them fine but I'm getting an error in console:

control.registerOnChange is not a function