【问题标题】:Getting ngmodel value out of duplicated forms从重复的表单中获取 ngmodel 值
【发布时间】:2021-03-16 03:21:23
【问题描述】:

如果这是一个愚蠢的问题,请原谅,但我已经尝试了很多。我有两个与 add 按钮重复的表单字段。所以在这里我尝试使用 ngmodel 从 value 表单域访问输入。但是当我使用添加按钮复制一组表单域时。当我单击添加按钮时,我在 value 表单字段中输入的输入会重复。当我使用 ngmodel 获取价值时会发生这种情况。有没有其他方法可以解决这个问题?如果您对问题有任何疑问,请发表评论

我的示例代码:https://codesandbox.io/s/formarraydynamic-forked-t7y9u?file=/src/app/app.component.ts

【问题讨论】:

  • 我认为你应该使用 formArray。
  • 你能举个例子吗? @TitusSutioFanpula
  • 为什么你使用 ngModel 已经附加了 formControl 。供参考。我是您分叉的那个代码框的原始创建者。
  • 我无法使用 formcontrol 获取这些值。是的,对不起,我完全相信@VimalPatel
  • 您正在使用“this.myForm.value”,请检查此内容。 codesandbox.io/s/formarraydynamic-rqdhc

标签: javascript angular typescript angular8 angular9


【解决方案1】:

从 Form 中获取值并在 UI 中显示。您可以在组件中创建一个 getter 属性,该属性将像这样从该特定字段返回值。

get values() {
    return this.myForm.value.map(x => x.value);
};

像这样添加并绑定这个变量到你的 UI 中。

<p>result:{{values}}</p>

由于您的表单是一个 formArray,您将获得数组类型的结果。

【讨论】:

  • 嘿,在你的代码中的那个代码框里,我正在尝试删除一组表单域(我的意思是在复制之后)。在我的 html 按钮中我使用了这个 (click)="DelBtn(a)" 并且在我的 ts 中我使用了这个 DelBtn = (delIndex) => this.myForm.controls.splice(delIndex, 1);
  • 如果我有三个重复,此代码将删除顶部第一个出现的那个。有什么办法可以删除最新的重复的吗? @Vimal
  • 创建沙盒并分享链接
  • 它实际上是删除数组中的第一个而不是最后一个
猜你喜欢
  • 2012-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 2018-07-24
  • 1970-01-01
相关资源
最近更新 更多