Angular - Reactive form - FormArray [closed]
I am trying to implement add multiple lines using Angular Reactive - FormArray.
In the example I have 2 text fields. After entering the data and click the add button I want to add it to the lines.
After adding I am not able to clear the data entry 2 text fields.
And the last added element in the array is still linked to data entry.
Is FormArray suitable in this case, or should I use a simple approach please
Here is my code.
https://stackblitz.com/edit/jay-angular-reactive-array-mwhmcn
angular angular-reactive-forms
closed as off-topic by R. Richards, Jörg W Mittag, user6655984, HDJEMAI, gnat Nov 15 '18 at 5:48
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Questions seeking debugging help ("why isn't this code working?") must include the desired behavior, a specific problem or error and the shortest code necessary to reproduce it in the question itself. Questions without a clear problem statement are not useful to other readers. See: How to create a Minimal, Complete, and Verifiable example." – R. Richards, Jörg W Mittag, Community, HDJEMAI
If this question can be reworded to fit the rules in the help center, please edit the question.
add a comment |
I am trying to implement add multiple lines using Angular Reactive - FormArray.
In the example I have 2 text fields. After entering the data and click the add button I want to add it to the lines.
After adding I am not able to clear the data entry 2 text fields.
And the last added element in the array is still linked to data entry.
Is FormArray suitable in this case, or should I use a simple approach please
Here is my code.
https://stackblitz.com/edit/jay-angular-reactive-array-mwhmcn
angular angular-reactive-forms
closed as off-topic by R. Richards, Jörg W Mittag, user6655984, HDJEMAI, gnat Nov 15 '18 at 5:48
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Questions seeking debugging help ("why isn't this code working?") must include the desired behavior, a specific problem or error and the shortest code necessary to reproduce it in the question itself. Questions without a clear problem statement are not useful to other readers. See: How to create a Minimal, Complete, and Verifiable example." – R. Richards, Jörg W Mittag, Community, HDJEMAI
If this question can be reworded to fit the rules in the help center, please edit the question.
add a comment |
I am trying to implement add multiple lines using Angular Reactive - FormArray.
In the example I have 2 text fields. After entering the data and click the add button I want to add it to the lines.
After adding I am not able to clear the data entry 2 text fields.
And the last added element in the array is still linked to data entry.
Is FormArray suitable in this case, or should I use a simple approach please
Here is my code.
https://stackblitz.com/edit/jay-angular-reactive-array-mwhmcn
angular angular-reactive-forms
I am trying to implement add multiple lines using Angular Reactive - FormArray.
In the example I have 2 text fields. After entering the data and click the add button I want to add it to the lines.
After adding I am not able to clear the data entry 2 text fields.
And the last added element in the array is still linked to data entry.
Is FormArray suitable in this case, or should I use a simple approach please
Here is my code.
https://stackblitz.com/edit/jay-angular-reactive-array-mwhmcn
angular angular-reactive-forms
angular angular-reactive-forms
asked Nov 14 '18 at 23:11
JayJay
4,45752655
4,45752655
closed as off-topic by R. Richards, Jörg W Mittag, user6655984, HDJEMAI, gnat Nov 15 '18 at 5:48
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Questions seeking debugging help ("why isn't this code working?") must include the desired behavior, a specific problem or error and the shortest code necessary to reproduce it in the question itself. Questions without a clear problem statement are not useful to other readers. See: How to create a Minimal, Complete, and Verifiable example." – R. Richards, Jörg W Mittag, Community, HDJEMAI
If this question can be reworded to fit the rules in the help center, please edit the question.
closed as off-topic by R. Richards, Jörg W Mittag, user6655984, HDJEMAI, gnat Nov 15 '18 at 5:48
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Questions seeking debugging help ("why isn't this code working?") must include the desired behavior, a specific problem or error and the shortest code necessary to reproduce it in the question itself. Questions without a clear problem statement are not useful to other readers. See: How to create a Minimal, Complete, and Verifiable example." – R. Richards, Jörg W Mittag, Community, HDJEMAI
If this question can be reworded to fit the rules in the help center, please edit the question.
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I did not get what are trying to do with FormArray
, thus I suggest a simpler way to achieve what you want.
Change your TS to:
export class AppComponent {
constructor(private fb: FormBuilder) { }
public simpleArray = ;
form: FormGroup;
ngOnInit() {
this.form = this.fb.group({
country1: ['', Validators.required],
service1: ['', Validators.required]
});
}
add() {
this.simpleArray.push(this.form.value);
//this.form.reset();
this.form.get('country1').setValue('');
this.form.get('service1').setValue('');
}
deleteService(i) {
this.simpleArray.splice(i,1)
}
}
And your HTML should be :
<form [formGroup]="form">
<h3>Angular Reactive form - FormArray Demo </h3>
Form : {{ simpleArray | json}}
<br/><br/>
<div class="form-group">
<label for="country">Country</label>
<input required type="text" id="country" class="form-control" formControlName="country1" />
</div>
<div class="form-group">
<label for="service">Serivce</label>
<input required type="text" id="service" class="form-control" formControlName="service1" />
</div>
<br />
<button type='button' class="btn btn-primary" (click)='add()'>Add Services</button>
<br />
<div >
<div class='row' *ngFor="let line of simpleArray let i=index">
<input class='form-control col-md-2' [value]="line.country1" />
<input class='form-control col-md-2' [value]="line.service1"/>
<button class='btn btn-primary col-md-1' (click)="deleteService(i)">Delete</button>
</div>
</div>
<br />
</form>
A working Stackblitz
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I did not get what are trying to do with FormArray
, thus I suggest a simpler way to achieve what you want.
Change your TS to:
export class AppComponent {
constructor(private fb: FormBuilder) { }
public simpleArray = ;
form: FormGroup;
ngOnInit() {
this.form = this.fb.group({
country1: ['', Validators.required],
service1: ['', Validators.required]
});
}
add() {
this.simpleArray.push(this.form.value);
//this.form.reset();
this.form.get('country1').setValue('');
this.form.get('service1').setValue('');
}
deleteService(i) {
this.simpleArray.splice(i,1)
}
}
And your HTML should be :
<form [formGroup]="form">
<h3>Angular Reactive form - FormArray Demo </h3>
Form : {{ simpleArray | json}}
<br/><br/>
<div class="form-group">
<label for="country">Country</label>
<input required type="text" id="country" class="form-control" formControlName="country1" />
</div>
<div class="form-group">
<label for="service">Serivce</label>
<input required type="text" id="service" class="form-control" formControlName="service1" />
</div>
<br />
<button type='button' class="btn btn-primary" (click)='add()'>Add Services</button>
<br />
<div >
<div class='row' *ngFor="let line of simpleArray let i=index">
<input class='form-control col-md-2' [value]="line.country1" />
<input class='form-control col-md-2' [value]="line.service1"/>
<button class='btn btn-primary col-md-1' (click)="deleteService(i)">Delete</button>
</div>
</div>
<br />
</form>
A working Stackblitz
add a comment |
I did not get what are trying to do with FormArray
, thus I suggest a simpler way to achieve what you want.
Change your TS to:
export class AppComponent {
constructor(private fb: FormBuilder) { }
public simpleArray = ;
form: FormGroup;
ngOnInit() {
this.form = this.fb.group({
country1: ['', Validators.required],
service1: ['', Validators.required]
});
}
add() {
this.simpleArray.push(this.form.value);
//this.form.reset();
this.form.get('country1').setValue('');
this.form.get('service1').setValue('');
}
deleteService(i) {
this.simpleArray.splice(i,1)
}
}
And your HTML should be :
<form [formGroup]="form">
<h3>Angular Reactive form - FormArray Demo </h3>
Form : {{ simpleArray | json}}
<br/><br/>
<div class="form-group">
<label for="country">Country</label>
<input required type="text" id="country" class="form-control" formControlName="country1" />
</div>
<div class="form-group">
<label for="service">Serivce</label>
<input required type="text" id="service" class="form-control" formControlName="service1" />
</div>
<br />
<button type='button' class="btn btn-primary" (click)='add()'>Add Services</button>
<br />
<div >
<div class='row' *ngFor="let line of simpleArray let i=index">
<input class='form-control col-md-2' [value]="line.country1" />
<input class='form-control col-md-2' [value]="line.service1"/>
<button class='btn btn-primary col-md-1' (click)="deleteService(i)">Delete</button>
</div>
</div>
<br />
</form>
A working Stackblitz
add a comment |
I did not get what are trying to do with FormArray
, thus I suggest a simpler way to achieve what you want.
Change your TS to:
export class AppComponent {
constructor(private fb: FormBuilder) { }
public simpleArray = ;
form: FormGroup;
ngOnInit() {
this.form = this.fb.group({
country1: ['', Validators.required],
service1: ['', Validators.required]
});
}
add() {
this.simpleArray.push(this.form.value);
//this.form.reset();
this.form.get('country1').setValue('');
this.form.get('service1').setValue('');
}
deleteService(i) {
this.simpleArray.splice(i,1)
}
}
And your HTML should be :
<form [formGroup]="form">
<h3>Angular Reactive form - FormArray Demo </h3>
Form : {{ simpleArray | json}}
<br/><br/>
<div class="form-group">
<label for="country">Country</label>
<input required type="text" id="country" class="form-control" formControlName="country1" />
</div>
<div class="form-group">
<label for="service">Serivce</label>
<input required type="text" id="service" class="form-control" formControlName="service1" />
</div>
<br />
<button type='button' class="btn btn-primary" (click)='add()'>Add Services</button>
<br />
<div >
<div class='row' *ngFor="let line of simpleArray let i=index">
<input class='form-control col-md-2' [value]="line.country1" />
<input class='form-control col-md-2' [value]="line.service1"/>
<button class='btn btn-primary col-md-1' (click)="deleteService(i)">Delete</button>
</div>
</div>
<br />
</form>
A working Stackblitz
I did not get what are trying to do with FormArray
, thus I suggest a simpler way to achieve what you want.
Change your TS to:
export class AppComponent {
constructor(private fb: FormBuilder) { }
public simpleArray = ;
form: FormGroup;
ngOnInit() {
this.form = this.fb.group({
country1: ['', Validators.required],
service1: ['', Validators.required]
});
}
add() {
this.simpleArray.push(this.form.value);
//this.form.reset();
this.form.get('country1').setValue('');
this.form.get('service1').setValue('');
}
deleteService(i) {
this.simpleArray.splice(i,1)
}
}
And your HTML should be :
<form [formGroup]="form">
<h3>Angular Reactive form - FormArray Demo </h3>
Form : {{ simpleArray | json}}
<br/><br/>
<div class="form-group">
<label for="country">Country</label>
<input required type="text" id="country" class="form-control" formControlName="country1" />
</div>
<div class="form-group">
<label for="service">Serivce</label>
<input required type="text" id="service" class="form-control" formControlName="service1" />
</div>
<br />
<button type='button' class="btn btn-primary" (click)='add()'>Add Services</button>
<br />
<div >
<div class='row' *ngFor="let line of simpleArray let i=index">
<input class='form-control col-md-2' [value]="line.country1" />
<input class='form-control col-md-2' [value]="line.service1"/>
<button class='btn btn-primary col-md-1' (click)="deleteService(i)">Delete</button>
</div>
</div>
<br />
</form>
A working Stackblitz
edited Nov 15 '18 at 0:26
answered Nov 15 '18 at 0:19
selem mnselem mn
5,09541939
5,09541939
add a comment |
add a comment |