摘要:你可以構(gòu)建一個節(jié)點或其類型的代碼。以下將討論基本類型,你可以用它來建立一個節(jié)點對象。這些頁面通過明確創(chuàng)建和添加節(jié)點和鏈路建立的示意圖。一個非常簡單的節(jié)點由一個與構(gòu)成。雖然以這種方式構(gòu)建的節(jié)點將工作變得更加復雜的代碼將變得更加難以閱讀和維護。
你可以構(gòu)建一個節(jié)點或其類型的JavaScript代碼。
以下將討論基本類型,你可以用它來建立一個節(jié)點對象。這些頁面通過明確創(chuàng)建和添加節(jié)點和鏈路建立的示意圖。以下頁面將展示如何使用模型,而不是使用這些代碼來構(gòu)建圖表。
一個GraphObject是可以被構(gòu)造和任何其他對象以相同的方式初始化的JavaScript對象。一個節(jié)點是一個GraphObject包含TextBlocks,shapes,Pictures和Panels。
一個非常簡單的節(jié)點由一個shape與TextBlock構(gòu)成。使用原始方式:
var node = new go.Node(go.Panel.Auto); var shape = new go.Shape(); shape.figure = "RoundedRectangle"; shape.fill = "#394"; node.add(shape); var textBlock = new go.TextBlock(); textBlock.text = "Hello!"; textBlock.margin = 5; textBlock.editable = true; node.add(textBlock); diagram.add(node);
這是一個可以移動的圖表,而不是一個屏幕顯示圖像,因此您可以單擊該節(jié)點來選擇它,然后拖動。
雖然以這種方式構(gòu)建的節(jié)點將工作變得更加復雜的代碼將變得更加難以閱讀和維護。幸運的是GoJS有一個更好的方式GraphObject。
此外,后面的章節(jié)將討論如何節(jié)點和鏈接會使用自動模型,模板創(chuàng)建,且數(shù)據(jù)綁定。直到那個時候,這些頁面將明確創(chuàng)建節(jié)點并將它們添加到圖表。
GoJS定義靜態(tài)函數(shù)GraphObject.make,這個靜態(tài)函數(shù)生成對象賦予其類,并提供初始屬性或其他參數(shù)GraphObject S中的成為面板元素。
GraphObject.make是一個函數(shù)的第一個參數(shù)必須是一個類類型。通常是
一個字符串,它設定了TextBlock.text,Shape.figure,Picture.source或Panel.type
我們可以重寫上面的代碼使用go.GraphObject.make產(chǎn)生完全相同的結(jié)果
var G = go.GraphObject.make; diagram.add(G( go.Node, go.Panel.Auto, G( go.Shape, "RoundedRectangle", { fill: "#394" } ), G( go.TextBlock, { text: "Hello!", margin: 5, editable: true } ) ));
這可以通過使用字符串參數(shù)來簡化一下:
diagram.add(G( go.Node, "Auto", G( go.Shape, "RoundedRectangle", { fill: "#394" } ), G( go.TextBlock, "Hello!", { margin: 5, editable: true } ) ));
所有使用GraphObject.make初始化仍然是JavaScript代碼,所以我們可以調(diào)用函數(shù)和共享對象,如樣式:
var style = { width: 55, height: 30, margin: 5, fill: "#555" } diagram.add(G( go.Node, "Auto", G( go.Shape, "RoundedRectangle", style ), G( go.TextBlock, { text: "xy1" } ) )); diagram.add(G( go.Node, "Auto", G( go.Shape, "Rectangle", style ), G( go.TextBlock, { text: "xy2" } ) ));
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/79579.html
摘要:下面是這樣做的一種方式使用模型和模板事實上,圖已經(jīng)為節(jié)點和鏈接非常簡單的默認模板。該特定節(jié)點的數(shù)據(jù)已投入對象的數(shù)組。因此,我們需要替換節(jié)點模版。數(shù)據(jù)綁定數(shù)據(jù)綁定是一種聲明聲明一個對象的屬性值應該用于設置另一個對象的屬性值。 使用模版構(gòu)視圖 讓我們嘗試建立兩個節(jié)點,將它們與一個鏈接連接。下面是這樣做的一種方式: var node1 = g( go.Node, Auto, ...
摘要:非定向鏈接最簡單的鏈接沒有箭頭指示方向。該模板只包含一個形狀為主要元素,因為這是在節(jié)點之間繪制的線條。鏈接的路線被計算后將得到一個路徑的點??梢院苋菀椎亟⒎较?,只需添加一個形狀并設置其屬性。目前也就只能先寫這么多吧入門的話問題不大了 非定向鏈接 最簡單的鏈接沒有箭頭指示方向。該模板只包含一個形狀為主要元素,因為這是在節(jié)點之間繪制的線條。鏈接的路線被計算后將得到一個路徑的點。 diag...
摘要:公司項目需要用到繪圖框架,繪圖部分以前是另一位同事負責,用的是框架。基于以上提及到的種種原因,上年年末我做起了技術(shù)調(diào)研,希望能找到一個合適我們項目的繪圖框架。兼容性問題項目對瀏覽器兼容性比較寬松,瀏覽器兼容性問題不在考慮范圍之內(nèi)。 showImg(https://ws3.sinaimg.cn/large/006tKfTcgy1g0ppk2kkhxj30ka0b4gm5.jpg); 公司...
摘要:公司項目需要用到繪圖框架,繪圖部分以前是另一位同事負責,用的是框架?;谝陨咸峒暗降姆N種原因,上年年末我做起了技術(shù)調(diào)研,希望能找到一個合適我們項目的繪圖框架。兼容性問題項目對瀏覽器兼容性比較寬松,瀏覽器兼容性問題不在考慮范圍之內(nèi)。 showImg(https://ws3.sinaimg.cn/large/006tKfTcgy1g0ppk2kkhxj30ka0b4gm5.jpg); 公司...
摘要:綁定字符串和數(shù)字特性綁定數(shù)據(jù)的屬性。轉(zhuǎn)換功能你可以通過轉(zhuǎn)換函數(shù)的第三個參數(shù)綁定構(gòu)造函數(shù)。允許位置字符串的形式來指定,而不是作為一個表達式的點。轉(zhuǎn)換函數(shù)可以是命名或匿名函數(shù)。他們把數(shù)據(jù)屬性值作為參數(shù),并返回適用于正在設置該屬性的值。 綁定字符串和數(shù)字特性 綁定GraphObject數(shù)據(jù)的屬性。在這個例子中,我們不僅綁定TextBlock.text和Shape.fill中的節(jié)點到節(jié)點數(shù)據(jù)的...
閱讀 3067·2023-04-25 17:22
閱讀 1624·2019-08-30 15:54
閱讀 1340·2019-08-30 15:53
閱讀 1895·2019-08-30 15:43
閱讀 3192·2019-08-29 12:29
閱讀 1299·2019-08-26 11:37
閱讀 3364·2019-08-23 18:02
閱讀 1693·2019-08-23 14:15