JointJS - 在 Inspector inside list 中使用 'when:'

JointJS - Using 'when:' in Inspector inside list

我正在基于 JSON 动态构建 Inspector。但是,我无法使 when: 正常工作。想象一下:我在一个名为 listobject 列表中,我得到了三个对象:typerulescript

只有当type等于rule时我才需要显示rule,只有当type等于[=18时我才需要显示script =].我怎样才能做到这一点?我尝试向 rule 添加以下内容 when:

when: {eq: {"type": "rule"}},

script类似的:

when: {eq: {"type": "script"}},

然而,检查员似乎忽略了这一点,从不展示它们,rulescript。我怎样才能使该条件正常工作?

JointJS inspector 非常有限,只会给我带来问题。我用 AngularJS、HTML5 和 SASS 定制的检查器替换了它。如果有人遇到同样的麻烦,这是我的建议:从头开始创建检查器比尝试使用 JointJS 的检查器要容易得多。

我已经通过一些测试让它工作了。我实际上发现检查器非常好 - 特别是条件 hiding/showing 即使对于大量不同的属性也能正常工作。 问题可能在于您引用 属性 的方式。就我而言,类似这样的方法有效:

text: {
         type: 'content-editable',
         label: 'Simple text input',
         when: {
               eq: {
                     'attrs/type/text': 'SIMPLE_COMPONENT'
                   }
                 }
       }

我正在使用 element.attr() 函数在其他地方设置属性类型:

element.attr({type: {
                text: 'SIMPLE_COMPONENT'
            }});

顺便说一句:还设法从包含各种 elements/components.

定义的大型 JSON 动态 "configure" Inspector