在数组内部使用数组

时间:2015-04-05 08:16:43

标签: angularjs jsonschema angular-schema-form

我试图生成一个有多辆车的表格,每辆车里面应该有多个人。

我尝试通过在另一个数组中使用数组来实现。但由于某些不明原因,它无法正常工作。

这就是我想要的: http://i.imgur.com/ZB2kCa1.png

这就是我所拥有的(到目前为止):

形式:

[
  {
    "key": "vehicles",
    "items": [
      "['vehicles'][]['plate-number']",
      "['vehicles'][]['color']",
      {
        "key": "people",
        "items": [
            "['vehicles'][]['people'][]['name']"
        ]
      }
    ]
  }
]

架构:

{
  "type": "object",
  "properties": {
    "vehicles": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "plate-number": {
            "title": "Plate number",
            "type": "string"
          },
          "color": {
            "title": "Color",
            "type": "string"
          },
          "people": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "enum": ["dr","jr","sir","mrs","mr","NaN","dj"]
                },
                "name": {
                  "title": "Name",
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}

修改 stefankmitph的回答解决了我的问题。谢谢!

但是发生了一些奇怪的事情:在person的同一级别添加了一个新对象vehicles。此外,当我填写某人的信息然后删除此人时,模型不会更新。

1 个答案:

答案 0 :(得分:1)

您提供的架构不会添加属性'性别' (如图片链接所示)。所以我拿了标题'而不是'性别':

[
  {
    "key": "vehicles",
    "items": [
      "vehicles[].plate-number",
      "vehicles[].color", {
          "key": "people",
          "type": "array",
          "title": "People",
          "items": [
              "vehicles[].people[].name",
              "vehicles[].people[].title"
              ]
      }
    ]
  }
]

我希望这是你正在寻找的东西! 注意:使用Schema Form Example Page

进行测试