node
GoJS提供了非常簡單的創建Node節點的方法,可將文本內容、結點形狀、背景顏色、邊距等屬性通過數據綁定[go.Binding]直接綁定到對應的Node數據中。
本文簡單介紹Node的創建過程及對應屬性的綁定。
1.simple node
創建一個只包含文本的Node,利用數據綁定,設置節點的背景顏色、文本內容、節點形狀。代碼如下:
<html lang="en">
<head><meta charset="UTF-8"><script src="https://cdnjs.cloudflare.com/ajax/libs/gojs/1.7.7/go-debug.js"></script><title>Document</title>
</head>
<body><div id="myDiagramDiv" style="width:300px; height:300px; background-color: #DAE4E4;"></div><script>var $ = go.GraphObject.make;//取創建的DIV作為畫布var? diagram? = ?$(go.Diagram, ?"myDiagramDiv", ? {????????????initialContentAlignment: ?go.Spot.Center,"toolManager.mouseWheelBehavior": ?go.ToolManager.WheelZoom//通過鼠標滾輪放大或縮小畫布 ??????});diagram.nodeTemplate =$(go.Node, "Auto",$(go.Shape, new go.Binding("figure","shape"), //綁定Node的形狀,也可直接設置Shape.figurenew go.Binding("fill", "color")), //綁定背景填充顏色$(go.TextBlock,{ margin: 5 },new go.Binding("text", "key")) //綁定文本內容,顯示在對應的Node上);//Node原始數據diagram.model.nodeDataArray = [{ key: "Alpha", color: "lightblue", shape:"Rectangle" },{ key: "Beta", color: "yellow", shape:"Circle" },{ key: "Gamma", color: "lightblue", fig: "Hexagon" },{ key: "Delta", color: "lightblue", fig: "FramedRectangle" }];
</script>
</body>
</html>
設置go.Shape屬性可以給node添加不同的樣式,example:
$(go.Shape, "Rectangle",{ figure: "Club"//Node形狀width: 40, //設置Node寬度,單位pxheight: 60, //Node高度margin: 4, //邊距fill: "green", //填充顏色background:"yellow"//背景顏色strokeWidth:2//線寬})
設置go.TextBlock的屬性可以給文本添加不同的樣式,example:
$(go.TextBlock, { text: "a Text Block", background: "lightgreen", margin: 2,width: 100, height: 33,alignment:go.Spot.Right})