angular - Angular:有没有一种方法可以从 ts 文件访问表单中的所有表单控件,而无需显式地传递表单 html?
问题描述
HTML 代码
<form #pharmacyForm="ngForm" name="form" novalidate>
//form controls
<button (click)="onSubmit(pharmacyForm)">Save</button>
</form>
打字稿代码
onSubmit(pharmacyForm){
const controls = pharmacyForm.controls;
for(const name in controls){
if (controls[name].invalid) {
controls[name].touched=true;
}
}
if (pharmacyForm.valid) {
this.save();
}
}
现在我的 TypeScript 文件中有多个间接调用 onSubmit 的方法,我不想将 pharmacyForm 作为参数传递给这些方法中的每一个。我只想能够访问表单而不将其作为方法参数传递。就像将表单对象绑定到一个变量然后能够迭代它的控件,我该如何实现这一点?
解决方案
要获得对您可以使用的表单的引用,@ViewChild 装饰器。
@ViewChild('pharmacyForm') public form: NgForm;
onSubmit() {
console.log(this.form);
}
推荐阅读
- angular - 如何使用模板驱动形式将角度路由与角度材料步进器(https://material.angular.io/components/stepper/overview)结合起来?
- python - 如何根据列名python pandas删除列
- python - 我的 django 网站启动后如何在后台运行功能?
- memory - 我们如何比较不同云服务提供商的服务并决定哪一个最适合我们公司?
- python-3.x - 查找大型准周期阵列中的所有正向零交叉点
- c++ - 在 C++ 中使用排序列表查找最小值
- c# - 即使几乎完全相同的代码在脚本的不同部分工作,也会出现错误
- javascript - React Hooks:在上下文 API 中存储的值发生更改后渲染组件?
- jquery - 如何根据数据属性(jQuery)获取特定的 HTML 元素
- linux - 如何使用 cURL 上传名称未知的文件