1

如何将 arrayIndex 作为参数传递给 onClick 中的函数?例如:

{
  key:"someKey"
  type:"array",
  items:[
    {
      "key":"someKey[].itemNo"
    },
    {
      "type":"button",
      "onClick":"someFunction(someKey[arrayIndex].itemNo)"
    }
  ]
}

“条件”中的 arrayIndex 有效。但是在函数中,我得到的是未定义的。我可以在 someFunction 中访问整个模型或表单的数据(即我可以访问 someKey),但我需要访问数组中的特定项(即 someKey[index])。

已按要求更新:( 取自模式表单示例页面)

请参阅 performAction 按钮。我需要将按钮上下文中的电子邮件传递给函数。

形式:

[

  {
    "key": "comments",
    "add": "New",
    "style": {
      "add": "btn-success"
    },
    "items": [
      "comments[].name",
      "comments[].email",
      {
        "key": "comments[].spam",
        "type": "checkbox",
        "title": "Yes I want spam.",
        "condition": "model.comments[arrayIndex].email"
      },
      {
        "key": "comments[].comment",
        "type": "textarea"
      },
      {
        "type":"button",
        "onClick":"performAction(comments[arrayIndex].email)",
        "title":"Perform Action"
      }
    ]
  },
  {
    "type": "submit",
    "style": "btn-info",
    "title": "OK"
  }
]

架构:

{
  "type": "object",
  "title": "Comment",
  "required": [
    "comments"
  ],
  "properties": {
    "comments": {
      "type": "array",
      "maxItems": 2,
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string",
            "pattern": "^\\S+@\\S+$",
            "description": "Email will be used for evil."
          },
          "spam": {
            "title": "Spam",
            "type": "boolean",
            "default": true
          },
          "comment": {
            "title": "Comment",
            "type": "string",
            "maxLength": 20,
            "validationMessage": "Don't be greedy!"
          }
        },
        "required": [
          "name",
          "comment"
        ]
      }
    }
  }
}
4

1 回答 1

1

这是在v1.0.0-alpha.1中添加的,并添加了arrayIndices.

于 2017-06-06T04:58:39.030 回答