我有一个新增页面 上面是from表单 下面有明细table表格(可新增多条数据) 现在form.contents.recNodeAmount这个字段需要this.form.amount乘以this.form.contents.recNodeRatio计算得出 代码逻辑怎么写呢
时间: 2024-12-14 14:24:36 浏览: 3
你可以将计算逻辑放在`ngOnInit`或者`calculateValue()`这样的自定义函数中,当`form.amount`和`form.contents.recNodeRatio`都有值的时候执行计算。假设你的组件名为`MyComponent`,下面是一个示例代码:
```typescript
import { Component } from '@angular/core';
@Component({
selector: 'app-my-component',
template: `
<form [formGroup]="form">
<!-- 表单元素 -->
<input formControlName="amount" [(ngModel)]="form.amount" />
<input formControlName="contents.recNodeRatio" [(ngModel)]="form.contents.recNodeRatio" />
<!-- 添加按钮和表格 -->
<button (click)="calculate()">计算</button>
<table>
<!-- 表格内容 -->
</table>
</form>
`,
})
export class MyComponent {
form = this.formBuilder.group({
amount: '',
contents: this.formBuilder.group({
recNodeRatio: '',
}),
});
calculate() {
if (this.form.controls.amount && this.form.controls['contents.recNodeRatio']) {
const amount = +this.form.get('amount').value;
const ratio = +this.form.get(['contents', 'recNodeRatio']).value;
// 计算总值并设置到某个字段,比如新的recNodeAmount
this.form.setControl('contents.recNodeAmount', new FormControl(amount * ratio));
}
}
ngOnInit() {
// 如果你想在初次加载时就初始化值,也可以在这里进行计算
this.calculate();
}
}
```
在这个例子中,当你点击“计算”按钮时,会检查两个字段是否有值,如果有,就会计算并将结果存储在`form.contents.recNodeAmount`中。
阅读全文