2017-06-18 14 views
0

私はNeo4jでPopoto.jsを設定しても問題ありません。 しかし、私の必要条件は、私が望むノードでgrpahを開始することです。たとえば、ノードIDまたはキー制約を渡すと、グラフはルートノードとして開始されます。デフォルトでグラフはstartメソッドに渡すラベルで始まります。 これを行うオプションはありますか?Popoto.js Neo4j-特定のノードでグラフを開始する方法

私はgetPredefinedConstraintsを使用して試してみました。それは動作します。しかし、残念なことに、それは横断中に出現するどこであっても制約を伴う特定のノードタイプをフィルタリングします。これは望ましくありません。 私は以下を試みましたが、それは私の必要性に完全に対応していません。助けてください。

"Person" :{ 
    "returnAttributes":["name","age"], 
    "constraintAttribute" : "name", 
    "getPredefinedConstraints": function (node) { 
     x = ["$identifier.name =~ '(?i).*" + nameValue + ".*'"]; 
     return x; 
    } 
} 

答えて

0

ルートノードは、次の例のように値を設定するために追加されたときは、イベントリスナーを使用することができます。あなたも値を避けるために、「不変」状態にルートノードを設定することができ

注意選択解除。

/** 
* Listener used when root node is added 
* In this listener root node is initialized with a value 
* and set in immutable state to avoid value deselection. 
* 
* @param rootNode root node reference when graph is created. 
*/ 
var rootNodeListener = function (rootNode) { 

    // Change root node type and label with instanceData 
    rootNode.value = { 
     type: popoto.graph.node.NodeTypes.VALUE, 
     label: "Person", 
     attributes: {name:'Tom Hanks'} 
    }; 

    // Set node as immutable, in this state the value cannot be deselected. 
    rootNode.immutable = true; 
}; 

// Add rootNodeListener on NODE_ROOT_ADD event 
popoto.graph.on(popoto.graph.Events.NODE_ROOT_ADD, rootNodeListener); 

ここでライブの例を参照してください: http://www.popotojs.com/live/simple-graph/selected-with-event.html

または1.1.2以降あなたは、このようなスタート機能のパラメータとして(選択された値を含む)事前に定義されたグラフでPopotoを開始することができます。

popoto.start({ 
    label: "Person", 
    rel: [ 
     { 
      label: "ACTED_IN", 
      node: { 
       label: "Movie", 
       value: { 
        title: "The Matrix" 
       } 
      } 
     }, 
     { 
      label: "DIRECTED", 
      node: { 
       label: "Movie" 
      } 
     }, 
     { 
      label: "PRODUCED", 
      node: { 
       label: "Movie" 
      } 
     }, 
     { 
      label: "WROTE", 
      node: { 
       label: "Movie" 
      } 
     } 
    ] 
}); 
ここ

ライブ例:http://www.popotojs.com/live/results/predefined-data.html

そしてここで、より複雑なもの:http://www.popotojs.com/live/save/index.html

+0

ありがとうございます。 私が試して与えてみましょう、あなたは例2で述べたように、私は、保存されたグラフのオプションを使用して、このケースを解決することができた。しかし、オプション1は、私のシナリオのためのより理想的に見えます。ノードは不変にする。特にオプションは大いに役立つつもりです。 –

関連する問題