在JointJS中显示基于另一个的字段

时间:2016-06-10 07:46:20

标签: jointjs rappid

我有一个检查器,其中包含一个对象列表,其中包含名称和类型以及我的自定义数据。假设我想在type属性的选择上显示我的自定义数据库。我可以用'当'但只有当它是具有特定路径的简单字段时才会出现,例如" 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
                    }

2 个答案:

答案 0 :(得分:0)

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

when: { eq: { 'labels/0/type': 'Number' } }

编辑

很明显,这种方法不能用于你的情况...... xpath when: { eq: { '*/type': 'Number' } }有效但无用。到目前为止,它还不容易实现,我们为此设置了一个新问题。像*那样{{1}}可能是当前上下文的东西会很好,所以你可以获得当前索引。

答案 1 :(得分:-1)

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

例如,您需要基于attr / type选项隐藏message元素。您需要编写类似的代码。

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

欢迎提出建议!!谢谢