作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
亲爱的 Stackoverflow 用户,
我还没有看到关于这个问题的任何例子,但我应该先提一下我的计划。
我有三个不同的页面,它们基本上共享许多 FormGroup。它们的差异基本上很小,可能只有一两个 FormControl。当然,我基本上可以只复制粘贴整个组件并只添加我需要的控件,但我觉得这是一个相当不切实际且困惑的解决方案。我将如何正确处理这个问题?一般来说,关于 Angular 中的继承有什么好的资源吗?官方页面似乎没有提及我在英雄类(class)中看到的内容。
最佳答案
我不知道为什么我认为它并不像我想象的那么简单。首先,我创建了一个 FormBuilder 类,它设置了我使用的所有其他表单之间共享的所有控件。现在,任何扩展 FormBuilder 类的组件都能够创建这样的表单。
import { Component } from '@angular/core';
import { FormControl } from '@angular/forms';
import { Form } from '../form';
@Component({
selector: 'app-invoices',
templateUrl: './invoices.component.html',
styleUrls: ['./invoices.component.scss']
})
export class InvoicesComponent extends FormBuilder {
constructor() {
super()
this.createForm();
}
}
所以,我需要的 FormControls 可以很容易地通过添加
this.queryForm.addControl('newControl', new FormControl(''))
因此组件的 html 代码几乎不需要任何更改。
关于angular - 有没有办法通过继承来重用表单组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49297375/
我是一名优秀的程序员,十分优秀!