josdejong/jsoneditor

enum dropdown in anyOf \ oneOf

Open

#1,653 创建于 2025年3月21日

在 GitHub 查看
 (1 评论) (0 反应) (0 负责人)JavaScript (10,781 star) (2,034 fork)batch import
featurehelp wanted

描述

Hi! Thanks for the fantastic library!

I have an issue with enums, maybe someone can help me with it.

Given I have a schema:

  rules: {
    type: 'array',
    items: {
      oneOf: [
        {
          type: 'object',
          properties: {
            val: { type: 'number' },
            op: {
              type: 'string',
              enum: ['lessThan', 'greaterThan', 'equals'],
            },
          },
        },
        {
          type: 'object',
          properties: {
            val: { type: ['number', 'string'] },
            op: {
              type: 'string',
              enum: ['before', 'after', 'equals'],
            },
          },
        },
        {
          type: 'object',
          properties: {
            val: { type: 'string' },
            op: {
              type: 'string',
              enum: ['beginsWith', 'endsWith', 'contains', 'equals',]
            },
          },
        },
      ],
    },
  }

If I create a rule with any of those types, validation works well and it displays no errors. However in the op field dropdown always only values from ['lessThan', 'greaterThan', 'equals'] displayed.

I've tried if\then schemas, this actually disables enum dropdowns in general and replaces it with a regular string input mode. I've tried const discriminators, but no luck so far.

Maybe I'm missing something? I would appreciate any help. Thanks.

贡献者指南