typescript - Angular 8: Hvordan utføre beregning på to egenskaper i et observabelt objekt og lagre resultatet i en annen egenskap
Jeg trenger å vise summen av to egenskaper til observerbare data. Her er koden min. Vennligst gi meg råd om hvordan jeg kan fikse det.
Typescript-klasse
export class Amount {
Amount1: number;
Amount2: number;
Total:number;
}
I TypeScript-tjenesten:
Jeg har erklært det observerbare objektet
export class AmountService {
public newmessageService = new BehaviorSubject(new Amount());
public Model = this.newmessageService.asObservable();
}
I komponentklasse:
abonnerte på den observerbare modellen i kalkulasjonskomponenten
export class Calculation implements OnInit {
Model$:Amount;
ngOnInit() {
this.service.Model.subscribe(temp => this.Model$ = temp)
}
}
I komponentvisning :
I visningen er Amount1- og Amount2-egenskapene deklarert for inndata, og totalen vises.
<form name="calculationform">
<mat-form-field class="example-full-width">
<mat-label>Amount1</mat-label>
<input matInput [(ngModel)]="Model$.Amount1" name="Amount1">
</mat-form-field>
<mat-form-field class="example-full-width">
<mat-label>Amount2</mat-label>
<input matInput [(ngModel)]="Model$.Amount2" name="Amount2">
</mat-form-field>
<mat-label>Total:</mat-label>
<mat-label>{{Model$.Total}}</mat-label>
</form>
Jeg trenger å vise summen av Amount1 og Amount2 på Total-egenskapen hver gang vi endrer beløpet.
Takk.
Svar #1
Du kan vurdere å konvertere Total-egenskapen til en getter.
export class Amount {
Amount1: number;
Amount2: number;
get Total():number {
return this.Amount1 + this.Amount2;
};
}
Svar #2
Vennligst prøv
ngDoCheck( ){
this.service.Model.subscribe(temp => {
this.Model$ = temp;
this.Model$.Total = Number(this.Model$.Amount1) + Number(this.Model$.Amount2);
});
}
