角材料表单模板

时间:2019-12-16 12:38:23

标签: angular forms templates angular-material reusability

我使用Angular Material已经有一段时间了,并且注意到很多无意义的重复,尤其是在表单方面-我确实需要将input中的每个mat-form-field包装起来,添加标签,验证消息等。实现也会随着时间而变化,因此我考虑将所有这些逻辑封装在某个组件中。

问题是,我找不到或想办法做到这一点。我提出的基本要求是:

  1. 使用反应形式表示法,因此开发人员无需学习新的API。
  2. 应与ChangeDetection.OnPush
  3. 合作

以前有人解决过这个问题吗?你的发现是什么?我的尝试和想法如下:

  • 包装组件
    • “简单包装”->需要将直接引用传递到FormControl实例。
    • 使用ControlValueAccessor->启用FormGroup时,不会在OnPush上检测到模糊事件。需要中介人FormControl来存储值并在父表单和子<input />之间进行通信,否则会引发异常。
    • 使用NgControl->与上面相同。
  • 包装在结构指令中->似乎不是预期的用途。无论是否使用相应的指令,似乎也需要注入模板。我还担心这将如何与即将发布的Ivy编译器及其优化交互。

我还看到,模糊事件检测是已知问题,但是请求请求已经在Angular的github中存在了相当一段时间,而没有被推到任何里程碑。

任何人都可以在这里帮助我或有任何经验吗?

0 个答案:

没有答案