问题标签 [angular2-formbuilder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
97705 浏览

angular - formControlName 和 FormControl 有什么区别?

我正在使用ReactiveFormsModuleAngular2 创建一个包含表单的组件。这是我的代码:

foo.component.ts

foo.component.html(带[formControl]):

foo.component.html(带formControlName):

两种方式都有效。但我无法弄清楚使用[formControl]和之间有什么区别formControlName

0 投票
2 回答
16702 浏览

angular - 如何在formbuilder数组中设置值

我有一个关于将数组值设置为 formBuilder.array 的问题。在不是数组的 formBuilder 中,它可以使用这种方式设置值,但在 formBuilder.array 中我不能这样做。我尝试为 formbuilder 'listServiceFeature' 和 'listservicefeature' 设置值,但无论哪种方式都不是设置值。

ts

html

0 投票
1 回答
1280 浏览

angular - 在父组件和子组件之间传递表单状态数据

使用 Angular 2,我有一个长而复杂的表单,我将其拆分为一个父组件和两个子组件,以便于管理。在我需要跟踪表单状态以进行验证之前,该过程非常有效。虽然可以通过@Input 轻松传输有关绑定模型的数据,但我无法弄清楚如何传输有关表单本身的数据。

下面是一个使用伪代码的例子:

在表单的底部,我使用 JSON 管道显示表单值。f.value应显示有关“详细信息”和“高级”输入的数据。如何在父组件和子组件之间传递信息,以便父​​组件可以跟踪表单状态?理想情况下,这适用于模板驱动和反应式表单。

0 投票
8 回答
123840 浏览

angular - 反应形式的两种方式绑定

使用 Angular 2,在模板驱动的表单中双向绑定很容易——您只需使用香蕉盒语法。您将如何以模型驱动的形式复制这种行为?

例如,这是一个标准的反应形式。让我们假设它比看起来要复杂得多,有很多不同的输入和业务逻辑,因此更适合模型驱动的方法而不是模板驱动的方法。

subscribe()我可以将各种逻辑应用于表单值并根据需要映射它们。但是,我不想映射表单中的每个输入值。我只想在employee更新时查看整个模型的值,方法类似于[(ngModel)]="example.name",并显示在模板中的 json 管道中。我怎样才能做到这一点?

0 投票
1 回答
935 浏览

angular - Angular 2:具有多个按钮的 NgForm

我正在尝试开发购物车。整个购物车包含多个按钮,例如添加/删除/继续等。我希望验证仅应用于具有提交类型的继续按钮。但目前在点击任何按钮时,验证都会被激活。

我无法发布代码,因为它非常复杂。请让我知道这是否是表格的正常行为,或者我可能有一些错误。

谢谢

0 投票
19 回答
138740 浏览

angular - 反应式表单 - 将字段标记为已触摸

我无法找出如何将所有表单的字段标记为已触摸。主要问题是,如果我不触摸字段并尝试提交表单 - 验证错误不会显示出来。我的控制器中有那段代码的占位符。
我的想法很简单:

  1. 用户点击提交按钮
  2. 所有字段都标记为已触摸
  3. 错误格式化程序重新运行并显示验证错误

如果有人有其他想法如何在提交时显示错误,而不实施新方法 - 请分享。谢谢!


我的简化形式:

我的控制器:

0 投票
0 回答
195 浏览

regex - 验证器模式不起作用正则表达式

在角度版本:2.1.1 中,我使用表单构建器创建了一个表单,一个控制器用于从谷歌地图输入坐标(纬度)。我用正则表达式将坐标格式定义为:

  • (-?\d+(.\d+)?),\s*(-?\d+(.\d+)?)

因此,一个有效的字符串将是:

  • 2.3, 4.66

我已将验证器设置为:

问题,为什么模式验证不起作用?

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
1214 浏览

angularjs - 使用 FormBuilder 突出显示原始但无效的表单

在 Angular 2 中使用FormBuilder来突出显示脏和无效的字段很容易。但是,您可以提交原始但无效的表单,而无需将字段更改为脏。

例如,此代码将显示,当您提交表单时未触摸输入,该表单FormGroup将无效,但.ng-pristine仍会保留在文本字段中。这意味着不会通知用户文本字段有问题。

Plunker中的示例。

FormControl提交表单时如何将原始状态更改为脏状态?

0 投票
1 回答
262 浏览

angular - 模型驱动形式 - 原始总是真实的

如何以编程方式将原始设置为 false?

this.myForm.get('categories').set.....设置什么?没有 setPristine。

出于某种原因,当我这样设置类别时:

this.myForm.controls.categories.pristine仍然等于真。

0 投票
1 回答
2228 浏览

angular - 如何使用输入数组构建 Angular 2 反应式表单

我正在构建自己的发票应用程序来学习 Angular 2。我使用 formBuilder 创建了我的模型。我的模型包含一组输入(发票的行项目),一旦映射到我的模板中,就会出现错误。(我遵循了这个例子:https ://scotch.io/tutorials/how-to-build-nested-model-driven-forms-in-angular-2 )。

这是错误、控制器和模板:

错误:

控制器:

模板(引发错误的区域):