• <menu id="w2i4a"></menu>
  • logo GoJS教程2020

    文檔首頁>>GoJS教程2020>>流程圖控件GoJS教程:如何將GoJS與Node.js結合使用

    流程圖控件GoJS教程:如何將GoJS與Node.js結合使用


    GoJS是一款功能強大,快速且輕量級的流程圖控件,可幫助你在JavaScript 和HTML5 Canvas程序中創(chuàng)建流程圖,且極大地簡化您的JavaScript / Canvas 程序。

    點擊下載GoJS最新版

    從2.0版本開始,GoJS可以用于沒有DOM的上下文中,例如Node.js。但是,有一些注意事項:

    • 由于沒有圖DIV,因此必須設置Diagram.viewSize屬性。這會影響所有與DIV大小相同的值,例如Diagram.position和視口大小的布局的布局結果。
    • 無法測量go.Pictures,必須改為設置GraphObject.desiredSize。
    • 無法準確測量go.TextBlocks,應改為設置GraphObject.desiredSize。
    對于需要測量圖片或文本塊的服務器端操作,應考慮將無頭瀏覽器與Node一起使用。 單擊此處,獲取使用Node與Puppeteer(無頭Chrome)的示例。

    Node.js示例

    如果將以下JavaScript另存為nodescript.js,并與節(jié)點(node nodescript.js)一起運行,它將在控制臺中輸出Model JSON結果,其中包括布局節(jié)點的位置。您可以通過這種方式使用Node.js進行大型布局之類的服務器端操作,然后將JSON發(fā)送給客戶端。

    // nodescript.js
    // This example loads the GoJS library, creates a Diagram with a layout and prints the JSON results.
    
    // Load GoJS.  This assumes using require and CommonJS:
    const go = require("gojs");
    
    const $ = go.GraphObject.make;  // for conciseness in defining templates
    
    const myDiagram =
      $(go.Diagram, '', // No DOM, so there can be no DIV!
        {
          viewSize: new go.Size(400,400), // Set this property in DOM-less environments
          layout: $(go.LayeredDigraphLayout)
        });
    
    myDiagram.nodeTemplate =
      $(go.Node, 'Auto',
        // specify the size of the node rather than measuring the size of the text
        { width: 80, height: 40 },
        // automatically save the Node.location to the node's data object
        new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),
        $(go.Shape, 'RoundedRectangle', { strokeWidth: 0},
          new go.Binding('fill', 'color')),
        $(go.TextBlock,
          new go.Binding('text', 'key'))
      );
    
    // After the layout, output results:
    myDiagram.addDiagramListener('InitialLayoutCompleted', function() {
      console.log(myDiagram.model.toJson());
    });
    
    // load a model:
    myDiagram.model = new go.GraphLinksModel(
    [
      { key: 'Alpha', color: 'lightblue' },
      { key: 'Beta', color: 'orange' },
      { key: 'Gamma', color: 'lightgreen' },
      { key: 'Delta', color: 'pink' }
    ],
    [
      { from: 'Alpha', to: 'Beta' },
      { from: 'Alpha', to: 'Gamma' },
      { from: 'Gamma', to: 'Delta' },
      { from: 'Delta', to: 'Alpha' }
    ]);
    另外,如果您的代碼另存為nodescript.mjs或項目為"type": "module",則可以將GoJS用作ES6模塊:
    // nodescript.mjs
    // This example loads the GoJS library, creates a Diagram with a layout and prints the JSON results.
    
    // Load GoJS.  This assumes using import and ES6 modules:
    import * as go from "gojs/release/go.mjs";
    
    const $ = go.GraphObject.make;
    . . .


    想要購買GoJS正版授權,或了解更多產品信息請點擊【咨詢在線客服】

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();