簡體   English   中英

findNodesByExample() 與數組 Go.JS

[英]findNodesByExample() with Array Go.JS

我從近 3 個小時以來一直在尋找解決方案,但沒有找到有效的解決方案。

我想在我的 object 數組中找到與正則表達式匹配的名稱。 這個名字在一個數組中,他在節點中(下面的例子):

[ {
     key: "avidyne_abs_nav",
     fields: [{
                name: "avidyne.abs_nav.A429AVIDYNE"
              }]
} ]

因此,要搜索與我的正則表達式匹配的名稱,這是我的代碼:

let safe = input.value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
let regex = new RegExp(safe, "i");
myDiagram.findNodesByExample({ key: regex },
                             { fields: function(n) { return n.some(a => { regex.test(a.name) }) } });

當我搜索一個鍵時, findNodesByExample() 會返回所有與正則表達式匹配的對象。 但是對於字段,它返回一個空數組...為了創建這個 function,我遵循了Go.JS API 文檔和年齡示例

我不確定您的輸入是什么,但它似乎可以按我的預期工作:

  function init() {
    var $ = go.GraphObject.make ;  // for conciseness in defining templates
    myDiagram = new go.Diagram("myDiagramDiv");

    myDiagram.model = new go.GraphLinksModel(
      [{
        key: "avidyne_abs_nav",
        fields: [{
          name: "avidyne.abs_nav.A429AVIDYNE"
        }]
      }]);


  } // end init

  window.click = function() {
    let safe = "A429AVIDYNE"; //input.value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
    let regex = new RegExp(safe, "i");
    const results = myDiagram.findNodesByExample({ key: regex },
      {
        fields: function (n) {
          return n.some(a => {
            return regex.test(a.name)
          }
          )
        }
      });
    console.log(results.count); // found one node
  }

這會根據與正則表達式匹配的 node.data.fields.name 找到一個節點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM