Neo4j中的Clickable Url属性

时间:2018-11-15 16:02:36

标签: neo4j

我想向Neo4J中的节点添加URL属性。 问题在于该URL不可单击。 有没有办法让它在Neo4J中呈现和可点击?

1 个答案:

答案 0 :(得分:1)

假设您正在谈论Neo4j仪表板,我将回答这个问题。 他们当前提供的自定义样式适用于包含以下节点和关系的图形组件:Grass Styling

下面的属性栏中的属性值未提供。

我看到实现这一目标的两种方法:

第一

如果它能吸引更大的受众,则正确的方法是编辑Neo4j browser代码以进行这些更改。 该浏览器实际上是使用React制作的。一旦弄清楚了组件和代码实际呈现了节点的属性,就可以对其进行编辑以将URL显示为链接。

第一步: 通过使用inspect元素找到属性状态栏的类,我能够缩小呈现此代码的代码的范围。在您的情况下,文件为: inspector.jsx,我们正在寻找的组件是 StyledInspectorFooterRowListPair 。您可以从检查元素中找出答案。

第二步: 我们看到 StyledInspectorFooterRowListPair 正在使用 mapItemProperties 来呈现键值对。因此,只需修改该方法即可解决问题。

const mapItemProperties = itemProperties =>
  itemProperties
    .sort(
      ({ key: keyA }, { key: keyB }) =>
        keyA < keyB ? -1 : keyA === keyB ? 0 : 1
    )
    .map((prop, i) => (
      <StyledInspectorFooterRowListPair className='pair' key={'prop' + i}>
        <StyledInspectorFooterRowListKey className='key'>
          {prop.key + ': '}
        </StyledInspectorFooterRowListKey>
        <StyledInspectorFooterRowListValue className='value'>
         { prop.key =="link"
            ? <a href={optionalToString(prop.value)}>{optionalToString(prop.value)}</a>
            : optionalToString(prop.value)
         }
        </StyledInspectorFooterRowListValue>
      </StyledInspectorFooterRowListPair>
    ))

如果节点属性名称为“ link”,则下面提到的代码实际上负责呈现link元素。您可以使用任何其他喜欢的逻辑。 这是一个例子。

{ prop.key =="link"
  ? <a href={optionalToString(prop.value)}> {optionalToString(prop.value)} 
    </a>
  : optionalToString(prop.value)
}

第3步 使用存储库中提到的步骤来启动项目。

Working Example

第二

如果仅适合您,则可以创建一个简单的浏览器扩展程序,将这些属性更改为链接。