如何以反应式(例如angular 11 )获得两个或多个字段输入的总和?所以我想要所有两个或更多输入值的总和,并通过使用angular +6中的反应形式在另一个输入中获得结果,我该怎么做?
发布于 2021-03-04 17:51:52
这是你的答案,请参考下面的代码,
将代码放在your.component.html中
<form [formGroup]="myForm" (ngSubmit)="onSubmit(myForm)" class="needs-validation" style="padding: 80px 15px 0px 15px;">
<div class="form-group">
<label for="number1">Number 1</label>
<input type="number" class="form-control" formControlName="number1" required placeholder="Enter number 1" />
</div>
<div class="form-group">
<label for="number2">Number 2</label>
<input type="number" class="form-control" formControlName="number2" required placeholder="Enter number 2" />
</div>
<div class="form-group">
<label for="number3">Number 3</label>
<input type="number" class="form-control" formControlName="number3" placeholder="Enter number 3">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
<div class="form-group">
<label for="sumOfNumber">Output</label>
<input type="number" class="form-control" [(ngModel)]="sumOfNumber" placeholder="Sum of above number is">
</div>将此代码放在your.component.ts中
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl, FormBuilder, Validators } from '@angular/forms';
@Component({
selector: 'app-reactive-form',
templateUrl: './reactive-form.component.html',
styleUrls: ['./reactive-form.component.scss'],
})
export class ReactiveFormComponent implements OnInit {
myForm: FormGroup;
formSubmit: boolean = false;
sumOfNumber: number = 0;
constructor(private fb: FormBuilder) {}
ngOnInit() {
this.myForm = this.fb.group({
number1: [null],
number2: [null],
number3: [null]
});
this.myForm.valueChanges.subscribe((value) => {
let sum = 0;
for (var key in value) {
if (value.hasOwnProperty(key)) {
sum = value[key] + sum;
}
}
console.log(sum)
this.sumOfNumber = sum;
});
}
}注意:在module.ts文件中导入FormsModule和ReactiveFormsModule
https://stackoverflow.com/questions/66471766
复制相似问题