问题标签 [angular-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.
angular - 重置后表单不设置配置表单控件并以角度初始化
在我的角度应用程序中,我有一个包含一些字段的表单:输入、日期选择器、选择、...
首先,在 ngOnInit() 中,我初始化表单组,调用 initilizeForm() 函数,在该函数中创建了表单组,并设置了一些配置,例如禁用表单控件或其“默认”值。
然后,用户写入一些信息,然后我保存表单组数据。之后,我将表单重置为具有清晰状态的表单,然后再次调用 initializeForm 函数来设置默认值。但是,此时,该功能没有做任何事情,我不知道为什么。
在 OnInit 中初始化调用:
初始化函数:
“保存”后重置表格
我不知道为什么当我在 ngOnInit 中调用初始化表单时,表单组会按预期创建,然后,如果我调用初始化表单,表单组不会显示具有该函数中设置的值的表单控件。select1 应该被禁用,并且应该选择 Value1 的选项。
可以使用 this.formGroup.get('fieldName').setValue('Value1') 和 .disabled() 解决,但我想为此使用初始化函数。
我正在使用 Angular 7 和 Angular 材料。
示例模板示例:
查看更多信息,我认为我应该在保存时使用下一个:
javascript - 如何使用 formControlName 执行“twoDataBinding”?类似于 ng 模型
我正在使用表单设置模型,但是在使用表单设置“MyModel”时遇到问题
这是为了优化表单的处理
当我使用按钮提交“提交”时,它向我显示了“this.myForm”以及我在表单中添加的元素,但似乎我不会将连接建立为“TwoDataBinding”,我也不想要执行此代码,因为我认为它非常多余
还
当涉及到许多形式时,如果您决定更改或重构该对象的属性,则更糟糕的是
你可以在这里看到完整的代码:https ://stackblitz.com/edit/form-model-hammer 的一个表单模型,如果你想做出改变请一个 FORK 分享,谢谢:
angular - Angular 表单生成器与表单控件和表单组
与表单生成器相比,使用表单控件和表单组有什么优势吗?
我在这里看到:
FormBuilder 提供了缩短创建 FormControl、FormGroup 或 FormArray 实例的语法糖。它减少了构建复杂表单所需的样板数量。
我想知道不使用表单生成器是否有任何优势。我问这个是因为我正在查看一些角度代码,我看到正在使用表单控件和表单组,我想知道如果有更短的方法来做同样的事情,为什么要这样做?
那么,与另一种方式相比,一种方式有什么优势,还是只是偏好?
angular - 无法读取未定义的属性“获取” - Angular 7 Forms
我正在处理 Angular 7 表单。我对表单进行了内置验证并且效果很好,但是当我要进行自定义验证并为此创建自定义函数时,我得到了一个userpass
字段的错误。我正在做的是,只是为了比较两个密码,如果它们不匹配,那么应该显示一个错误。
的HTML
register.ts 代码
validators.ts 代码
第一个函数在 中完美运行
validators.ts
,但我不知道第二个函数有什么问题。当我从中删除时passwordCompare()
,register.ts
我没有收到任何错误。
angular - Angular Nested-Form builder 给出“找不到带路径的控件”错误
我有一个 Angular 嵌套表单,它分为多个选项卡,每个选项卡都有多个输入元素,就像在这个stackblitz 中一样。
请帮我解决以下问题:
angular - 如何在 Angular 7 中使用反应式表单设置“至少应填写一个字段”验证?
我在 Angular 7 中有一种反应形式,其中包含电子邮件、电话和寻呼机三个字段。我的要求是至少其中一个应该由用户填写,否则我们应该抛出这样的错误“请指定通知之一(电子邮件、短信或寻呼机)。”
我曾尝试编写自定义通知,但它不起作用。你能帮我看看我哪里出错了。
下面是我的 HTML 代码:
下面是 component.ts 代码:
javascript - 如何获取动态 Angular 字段的控件名称?
我正在尝试将新控件动态推送到我的 formBuilder 中。
控件名称是动态的,基于模板名称(“string1”、“string2”、...)。
但我没有找到任何方法来动态获取控件名称。我尝试了,templateType.name
但它什么也没返回。
angular - ngTemplate 和 ngContainer 中的 FormControl
我有一个工作角度形式,在两个条件下重复模板,所以我将它移到一个公共位置并定义 ngContainer 以通过传递变量来显示值,但是在模板内部,代码无法找出形式我得到以下错误
模板