如何以角度形式处理嵌套在数组属性中的未知数量的模型字段

时间:2015-07-13 05:49:04

标签: angular-formly

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

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

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

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

关于我如何做到这一点的任何想法?键是明确定义的,所以我理论上可以创建一些将键映射到validators对象的角度服务,但我不清楚如何形成对它的形式。

我有一个正在工作的JSbin here,它可以分类/有点工作,但对我来说感觉很脏。

我想有一种方法可以将ng-repeat放在包装器模板中,但是看一下这种形式代码,看起来形式上不能处理包装器中的多个<formly-transclude>元素 - 即使它可以处理多个包装器,所以也许可以使用多个包装器来实现它。

1 个答案:

答案 0 :(得分:2)

&lt; p&gt;实际上(除了可以/应该用css解决的一些样式问题),我认为你的实现很好。我建议您在将其设置为角度形式之前,通过基于模型生成字段配置来完成您正在执行的操作。&lt; / p&gt;