如何使 angular-formly 处理嵌套在数组 属性 中的未知数量的模型字段

How can I make angular-formly deal with an unknown number of model fields that are nested in an array property

UPDATED:我更新了 JSBin 以修复索引问题并为每个 属性 创建正式字段,而不是尝试将属性数组传递到正式模板。如果需要,这将允许我定义自定义和 属性 特定的验证器。我仍然不知道这是否是正确的方法,所以欢迎提供一些指导。

我有一个如下所示的模型结构,每个对象都可以有不同的数字属性:

[
  {
    prop1: boolean,
    prop2: String,
    ...
    properties: [
      {
        key: String,
        value: String,
        description: String
      },
      ...
    ]
  },
  ...
]

将对象数组传递给正式类型模板并正式迭代每个对象的属性数组应该非常简单(对吧?)。我认为棘手的部分是想要验证属性数组中的每个项目 - 使用 separate 验证器。

对我如何做到这一点有什么想法吗?密钥定义明确,因此理论上我可以创建一些 angular 服务,将密钥映射到 validators 对象,但我不清楚如何正式地讲述它。

我有一个 JSbin here 可以 sorta/kinda 工作,但我觉得它很脏。

我想有一种方法可以将 ng-repeat 放入包装器模板中,但是查看 formly 代码,formly 似乎无法处理包装器中的多个 <formly-transclude> 元素 -即使它可以处理多个包装器,所以也许有一种方法可以处理多个包装器。

实际上(除了 can/should 可以通过 css 解决的一些样式问题之外),我认为您的实现很好。我建议您在将其交给 angular-formly 之前,根据模型生成字段配置,从而准确地执行您正在做的事情。