0

我正在实现一个控制值访问器以将它与我的角度形式集成。

在其中传递某种类型的对象是否有效/正确,或者在使用角度形式时建议使用原语?

作为 FormControl 传递的对象:

{ id: number; foo: string; }

转换此对象(在控制值访问器类中)是一种不好的做法吗?或者我应该在更高级别上转换它,当我为一个比方说发布请求准备有效负载时?

我正在寻找有关控制值访问器实现的好的和坏的做法。我读过的大部分内容都只是关于如何实现它。

4

1 回答 1

0

这样做不是一个坏习惯:如果您查看控制值访问器的 API,您会看到该compareWith函数,用于在使用非原始值时跟踪项目的相等性。

但即使这不是一个坏习惯,你也应该在实施之前考虑一下。您的值是具有两个属性的对象。对象通常是表单组,或者如果不是,它们的属性与 ngModel 绑定。但不是完整的对象。

在您的情况下,您只有一个 ID 和一个值。为此,您可以使用简单的选择输入,因为控件可能不够复杂,无法创建控件值访问器。

总结一下:使用非原始值并不是一个坏习惯,但是制作一个控制值访问器总是很复杂,所以在做之前想一个更简单的方法。

于 2019-06-04T06:39:35.560 回答