Использование условных выражений в form.io в сетке данных - PullRequest
0 голосов
/ 06 августа 2020

Я только начинаю возиться с form.io и немного застрял. Я пытаюсь создать несколько условий в каждой строке таблицы данных. Например, если выбран переключатель, равный «payIn», то в той же строке должно появиться другое поле. Я могу сделать это статически, присвоив номер массива компоненту JSON, но это, очевидно, не решает проблему динамической работы (это просто использовалось для проверки logi c, поскольку он всегда указывает на первую строку) . Что я мог сделать / использовать, чтобы этот logi c работал независимо в каждой строке в сетке данных?

{
"label": "Pay In Reason",
"widget": "choicesjs",
"hidden": true,
"tableView": true,
"data": {
  "values": [
    {
      "label": "Employee",
      "value": "employee"
    },
    {
      "label": "Bank",
      "value": "bank"
    }
  ],
  "json": "",
  "url": "",
  "resource": "",
  "custom": ""
},
"selectThreshold": 0.3,
"key": "payInReason",
"conditional": {
  "show": true,
  "when": "dataGrid[0].payInOut",
  "eq": "payIn"
},
"type": "select",
"indexeddb": {
  "filter": {}
},
"input": true,
"placeholder": "",
"prefix": "",
"customClass": "",
"suffix": "",
"multiple": false,
"defaultValue": null,
"protected": false,
"unique": false,
"persistent": true,
"clearOnHide": true,
"refreshOn": "",
"redrawOn": "",
"modalEdit": false,
"labelPosition": "top",
"description": "",
"errorLabel": "",
"tooltip": "",
"hideLabel": false,
"tabindex": "",
"disabled": false,
"autofocus": false,
"dbIndex": false,
"customDefaultValue": "",
"calculateValue": "",
"calculateServer": false,
"attributes": {},
"validateOn": "change",
"validate": {
  "required": false,
  "custom": "",
  "customPrivate": false,
  "strictDateValidation": false,
  "multiple": false,
  "unique": false
},
"overlay": {
  "style": "",
  "left": "",
  "top": "",
  "width": "",
  "height": ""
},
"allowCalculateOverride": false,
"encrypted": false,
"showCharCount": false,
"showWordCount": false,
"properties": {},
"allowMultipleMasks": false,
"clearOnRefresh": false,
"limit": 100,
"dataSrc": "values",
"valueProperty": "",
"lazyLoad": true,
"filter": "",
"searchEnabled": true,
"searchField": "",
"minSearch": 0,
"readOnlyValue": false,
"authenticate": false,
"template": "<span>{{ item.label }}</span>",
"selectFields": "",
"searchThreshold": 0.3,
"uniqueOptions": false,
"fuseOptions": {
  "include": "score",
  "threshold": 0.3
},
"customOptions": {},
"id": "eas39m"
}

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 08 августа 2020

Работает примерно так: show = (row.component === 'value')

...