角度表行包含使用反应形式动态动态列的总和

2023-12-28

我正在 Angular 项目中工作,我想显示一个包含两列和动态行的表格,当用户输入任何数字时,最后一行包含每列的总和,这就是我想要实现的目标:

element | FR | EN |
-------------------
elem A  |    |    |
-------------------
elem B  |    |    |
-------------------
elem C  |    |    |
-------------------
Total   |    |    |

这是我的角度代码:component.ts:

listDecompositionLibelle: string[] = ['elem A', 'elem B','elem C'];

ngOnInit() {

    this.valuesForm = this.fb.group({
          decomposition : this.fb.array([
          ])
    });

    for (let i = 0; i < 3; i++) {
          this.addDecompositionLigne(this.listDecompositionLibelle[i]);
    }
}

// function to add element to array
 addDecompositionFormGroup(typeDecomposition): FormGroup {
                 return this.fb.group({
                  type: [typeDecomposition],
                  frVal: [''],
                  enVal: ['']
                 });
 }

 // function to push my array
addDecompositionLigne(typeDecomposition) {
           (<FormArray>this.valuesForm.get('decomposition')).push(this.addDecompositionFormGroup(typeDecomposition));
}

这是我的 html 代码:

<table class="table table-bordered" formArrayName="decomposition">
      <tbody>
          <tr>
            <th>element</th>
            <th>FR</th>
            <th>EN</th>
        </tr>
        <tr *ngFor="let decomposition of valuesForm.get('decomposition ').controls;let i=index" [formGroupName]="i" >
          <td>
              {{listDecompositionLibelle[i]}}
            </td>
            <td>
              <input type='text' class="form-control" formControlName="frVal" [id]="'frVal'+i">
            </td>
            <td>
              <input type='text' class="form-control" formControlName="enVal" [id]="'enVal'+i">
            </td>
            <td>
        </tr>
      </tbody>
</table>
// i want to add a row that calculte the sum of the values in each column of my table

您是否知道如何添加一行,当用户开始在输入中键入值时动态计算每列中的值之和?

提前致谢。

此致。


詹姆斯,在角度上,变化是观察者订阅 valueChanges 的。

如果声明两个变量 sumFR 和 sumEN,则可以在声明形式之后

this.valuesForm.get('decomposition').valueChanges.subscribe(res=>{
   //here we has res, so we can make some like
   let sumFR=0
   let sumEN=0
   res.forEach(x=>{
      sumFR+=(+x.frVal);  //<--the +x.frVal is to convert first to number
      sumEN+=(+x.enVal); 
   })
   this.sumFR=sumFR;
   this.sumEN=sumEN
})

在 .html 中,您使用 {{sumEN}} 和 {{sumFR}}

顺便说一下,没有必要创建一个内部有 FormArray 的 FormGroup。您可以简单地声明

decomposition=new FormArray([])
//or using FormBuilder
decomposition=this.fb.array([])

并在.html中使用

<!--see that we used [formGroup]="item", not [formGroupName]="i"-->
<tr *ngFor="let item of decomposition.controls;let i=index" [formGroup]="item" >
  <td><input formControlName="valEn"></td>
  <td><input formControlName="valFn"></td>
</tr>

//or

<!--see that declare the formGroup=the formArray
<div [formGroup]="decomposition">
   <!--and now, we can use [formGroupName]="i"-->
   <tr *ngFor="let item of decomposition.controls;let i=index" [formGroupName]="i" >
      <td><input formControlName="valEn"></td>
      <td><input formControlName="valFn"></td>
   </tr>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

角度表行包含使用反应形式动态动态列的总和 的相关文章

  • Angular2 - 添加新的
  • 项目 onClick 事件
  • 我使用 ngFor 迭代数组以便在列表中显示它们 但我无法在列表中添加新项目 在 Onclick 事件期间我得到一个空的 li 也许我没有链接正确的东西 指令 或者是什么 也许我使用了错误的变量 我的导出类有我的构造函数 export cl
  • Angular 2 和使用 html 5 视频实例化相机流

    我是 Angular 2 的新手 如果我有一个视频标签 例如
  • 如何在 angular2 组件中导入 npm 包?

    我正在尝试学习 ng2 的诀窍 但依赖注入系统快要了我的命 我正在使用 ng 快速入门 https github com angular quickstart blob master README md https github com a
  • 滑动浏览段选项卡 - Ionic 3

    下面的代码使用 ionic 3 中的片段 文档显示了 ngSwitch ngModel 的使用 但我想简单地在该段上滑动并切换到另一个段选项卡 我怎样才能实现这个目标 我对滑动顶部的选项卡不感兴趣 但通过滑动内容我想更改分段选项卡
  • 解析器中的链相关可观察量

    我有一个解析器 需要在加载页面之前从两个依赖的 API 获取数据 第二个调用是由第一个调用的结果定义的 因此我尝试链接两个可观察量 并且需要在解析器末尾返回第二个可观察量 在我尝试链接可观察量之前 我有 resolve route Acti
  • Angular CLI - Typescript 抛出:无法读取未定义的属性“长度”

    我使用 ngserve 在 Angular 4 项目中运行 但出现错误 Cannot read property length of undefined 但我的项目中没有任何财产长度 完整的错误 Your global Angular CL
  • Ionic 4 用户登录后无法立即显示注销按钮

    我正在我的 Ionic 4 应用程序中工作 并且已经制作了登录 注册系统 当用户登录后 用户将能够访问该页面 当用户未登录并尝试访问该页面时 它将被重定向到登录页面 这是我的用户登录 page ts async UserLoginDetai
  • Angular 4:Bootstrap 的折叠无法使用 data-target 属性

    我对 Angular 4 使用 Angular CLI 还是个新手 我不知何故无法完成简单的 Bootstrap Collapse 工作 以下是我的崩溃代码 div class panel panel default div class p
  • 在角度项目中使用茉莉花进行单元测试订阅方法

    我正在尝试测试ngOnInit 具有的组件的方法subscribe method 成分 import Component OnInit from angular core import SharedDataService from serv
  • 所有 'size' 、 'prototype' 的声明必须具有相同的修饰符

    I have downloaded code from repository and run it on local getting these errors have following versions when i run ionic
  • Chartjs + Angular6 未显示图表或任何错误

    我正在尝试以角度实现chart js 编写了一个简单的代码来在html上显示图表 但是页面上没有输出 也没有错误 我不明白问题出在哪里以及为什么显示图表失败 堆栈闪电战 https stackblitz com edit angularch
  • router.navigate 更改 URL,但不渲染组件

    而不是使用 a href my path my param a 在我的模板中 我愿意使用带参数的函数将我重定向到页面 所以 这就是我在 ts 文件中构建函数的方式 redirectToChat my param this router na
  • Angular 2 形式 + OnPush

    我正在编写一个 Angular 2 应用程序 出于性能原因 我尝试在任何地方使用 ChangeDetectionStrategy OnPush 我有一个复杂的组件 需要 OnPush 才能顺利工作 其中包含另一个显示表单的组件 使用 For
  • Angular 4 在 APP_INITIALIZER 中注入路由

    我正在尝试检索 APP INITIALIZER 中 url 中存在的数据 应用程序模块 ts export function init config ConfigService router Router return gt config
  • Angular 2打开静态页面

    我有 Angular 2 项目 我想在新窗口中打开服务器上可用的静态帮助文件 我试过window open help index html 它导航到该页面 但抛出有关找不到路线的错误 我也尝试在角度区域外运行上面的代码 但没有什么区别 我怀
  • 从 Angular 6 服务中绑定图像

    我有一个端点 它根据某些参数为我提供图像 这不是一个图像网址 而是一个普通图像 因此 当我到达邮递员中的端点时 作为响应 我收到一张图像 JPG 我是否可以在变量中接收该图像并将其绑定到 HTML 标签中 所有问题都有将图像 url 映射到
  • Angular - 使用 routerlink 将对象传递给 @Input 参数

    我有一个带有 Input 参数的角度分量 如下所示 Component selector app transmission history export class TransmissionHistoryComponent implemen
  • 如何将属性绑定到 style.width (以像素为单位)?

    我正在使用 Angular 2 并且编写了以下代码 div some texts div 我也尝试过 div some texts div export class MyComponent width number 150 但它并不将宽度绑
  • 将打字稿中的字符串转换为时间格式

    我必须将服务器数据转换为字符串格式13 47 to 01 47PM但我正在尝试 time date hh MM and task time date shortTime 但它显示日期管道错误和参数错误 运行时错误 InvalidPipeAr
  • 如何为角度中的备用列添加背景颜色

    我使用角度材料垫桌子组件创建了一个简单的角度桌子 使用下面的样式我可以为备用行着色 但是当我将下面的样式中的行更改为列时 这不适用于列 mat row nth child even background color f2f4f7 mat r

随机推荐