0

我有一个检查器,其中包含一个具有名称和类型的对象列表,以及我的自定义数据。假设我想根据类型属性的选择显示我的自定义数据库。我可以用'when'来做到这一点,但前提是它是具有特定路径的简单字段,如“attr/type”。由于它在列表中,因此索引会有所不同,因此我不知道如何指定路径以检查是否选择了哪种类型。对这个问题有任何想法吗?

    data: {
                        type : 'list',
                        item: {
                            type: 'object',
                            properties: {
                                'name' : {
                                    type : 'text',
                                    group : 'text',
                                    label : 'Name',
                                    index : 1
                                },
                                type : {
                                    type : 'select',
                                    group : 'text',
                                            label : 'Type',
                                            options: ['Text','Number','Date','Select','Text Area'],
                                    index : 2
                                },
                                required : {
                                    type : 'toggle',
                                    group : 'validation',
                                    label : 'Required',
                                    index : 3
                                },
                                'min-length' : {
                                    type : 'number',
                                    group : 'validation',
                                    min : 0,
                                    label : 'Min Length',
                                    index : 4
                                },
                                'max-length' : {
                                    type : 'number',
                                    group : 'validation',
                                    min : 1,
                                    label : 'Max Length',
                                    index : 5
                                },
                                'min' : {
                                    type : 'number',
                                    group : 'validation',
                                    min : 0,
                                    label : 'Min',
                                    index : 6
                                },
                                'max' : {
                                    type : 'number',
                                    group : 'validation',
                                    min : 1,
                                    label : 'Max',
                                    index : 7
                                },
                                'message' : {
                                    type : 'text',
                                    group : 'validation',
                                    label : 'Error message',
                                    index : 8
                                },
                                'regex' : {
                                    type : 'text',
                                    group : 'validation',
                                    label : 'Regex',
                                    index : 9
                                },
                                'options' : {
                                    type : 'list',
                                    item : {
                                        type:'object',
                                        properties: {
                                            'text' : {
                                                type : 'text',
                                                label : 'Text',
                                                index : 1
                                            },
                                            'value' :{
                                                type : 'text',
                                                label : 'Value',
                                                index : 2
                                            }
                                        }
                                    },
                                    group : 'validation',
                                    label : 'Options',
                                    index : 10
                                }

                            }
                        },
                        group : 'validation',
                        label : 'Input',
                        index : 1
                    }
4

2 回答 2

0

您必须在特定元素的属性内提供..

例如,您需要根据 attr/type 选项隐藏消息元素您需要编写这样的代码..

                        'message' : {
                                type : 'text',
                                group : 'validation',
                                label : 'Error message',
                                when: { ne: { 'data/item/type': "Your Option here!!"} },
                                index : 8
                            },

欢迎提出建议!!谢谢

于 2018-11-14T09:05:49.530 回答
0

我担心您需要从名称/类型集合中为每种类型创建一个字段。类似的问题在这里解决:

operator: {
                type: 'select',
                options: ['over', 'in', 'out', 'atop', 'xor', 'arithmetic'],
            },
            k1: {
                type: 'number',
                when: { eq: { operator: 'or' } }
            },
            k2: {
                type: 'number',
                when: { eq: { operator: 'arithmetic' } }
            },
            k3: {
                type: 'number',
                when: { eq: { operator: 'xor' } }
            },
            k4: {
                type: 'number',
                when: { eq: { operator: 'over' } }
            }

编辑

很明显,这种方法不能在您的情况下使用... xpath when: { eq: { 'labels/0/type': 'Number' } }有效但无用。到目前为止,这并不容易,我们为此设置了一个新问题。when: { eq: { '*/type': 'Number' } }有类似where可能是当前上下文的东西会很好*,这样您就可以获取当前索引。

于 2016-06-14T15:21:29.887 回答