Ваша проблема в том, что вы создали метод для загрузки полей, но вы не вызываете его, поэтому форма не загружается.
Для этого вам нужно сделать это:
На вашем app.component.ts вам нужно
implements OnInit
и вам нужно загрузить свой метод на
ngOnInit(){
this.loadvalues()
}
Так, когда компонент загружен под углом, ваша форма будет заполнена!
Если вы хотите это с помощью кнопки, сделайте так:
получить логическую переменную, например, на вашем app.component.ts, вы можете сделать это: visible: boolean = false;
а затем loadvalues(){ this.visible = true; }
и в таком виде: <dynamic-form [fields]="regConfig" (submit)="submit($event)" *ngIf="visible"> </dynamic-form>
Если вы хотите показать и спрятаться в одной кнопке, сделайте так:
loadvalues(){
if(this.visible)
{
this.visible = false;
}else{
this.visible = true;
}
}
Также вам нужно загрузить поля сверху.
regConfig: FieldConfig[] = [
{
type: "input",
label: "Username",
inputType: "text",
name: "name",
validations: [
{
name: "required",
validator: Validators.required,
message: "Name Required"
},
{
name: "pattern",
validator: Validators.pattern("^[a-zA-Z]+$"),
message: "Accept only text"
}
]
},
{
type: "input",
label: "Email Address",
inputType: "email",
name: "email",
validations: [
{
name: "required",
validator: Validators.required,
message: "Email Required"
},
{
name: "pattern",
validator: Validators.pattern(
"^[a-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{2,4}$"
),
message: "Invalid email"
}
]
},
{
type: "input",
label: "Password",
inputType: "password",
name: "password",
validations: [
{
name: "required",
validator: Validators.required,
message: "Password Required"
}
]
},
{
type: "radiobutton",
label: "Gender",
name: "gender",
options: ["Male", "Female"],
value: "Male"
},
{
type: "date",
label: "DOB",
name: "dob",
validations: [
{
name: "required",
validator: Validators.required,
message: "Date of Birth Required"
}
]
},
{
type: "select",
label: "Country",
name: "country",
value: "UK",
options: ["India", "UAE", "UK", "US"]
},
{
type: "checkbox",
label: "Accept Terms",
name: "term",
value: true
},
{
type: "button",
label: "Save"
}
];
Надеюсь, это поможет!