最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文詳解GoJs中g(shù)o.Panel的itemArray屬性

 更新時(shí)間:2023年05月05日 10:23:33   作者:沅芷湘蘭  
這篇文章主要為大家介紹了一文詳解GoJs中g(shù)o.Panel的itemArray屬性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

上一篇文章中,為了演示go.panel內(nèi)部元素的折疊展開,也是為了舉例子比較簡(jiǎn)單。使用了一個(gè)go.Panel的屬性itemArray,本文將詳細(xì)的介紹一下itemArray屬性。

itemArray屬性的使用

只包含一種繪圖模板的渲染列表

//data
nodes: [
    {
      key: 1,
      text:"三國(guó)",
      list1: ["魏", "蜀", "吳"]
    },
],
//methods
this.myDiagram.nodeTemplate = $$(
go.Node,
"Auto",
$$(go.Shape, "Rectangle", { fill: "#67B73C",width:100,height:100 }),
$$(
  go.Panel,
  "Table",
  { column: 0 },
  $$(go.TextBlock, {
    column: 0,
    margin: new go.Margin(3, 3, 0, 3),
    font: "bold 12pt sans-serif",
  },new go.Binding("text", "text")),
  $$("PanelExpanderButton", "LIST1", { column: 1 }),
  $$(
    go.Panel,
    "Vertical",
    { name: "LIST1", row: 1, column: 0, columnSpan: 2 },
    new go.Binding("itemArray", "list1")
  )
)
);

可以看出在節(jié)點(diǎn)內(nèi)部如果出現(xiàn)了很多樣式和顯示位置都相同的元素,也就是渲染列表。就可以使用itemArray屬性。然后配置的屬性值必須為數(shù)組,否則則會(huì)報(bào)錯(cuò)。

包含不同的繪圖模板的渲染列表

在真實(shí)的需求開發(fā)中,可能在需要處理的渲染列表中不是只有一種繪圖模板。需要有其他的繪圖模板配合使用,這時(shí)就需要結(jié)合itemTemplate屬性進(jìn)行結(jié)合使用。其使用方法如下

let itemTemplates = $$(go.Panel, "Auto",
    { margin: 2 },
    $$(go.Shape, "RoundedRectangle",
    { fill: "#FF9900" }),
    $$(go.TextBlock, new go.Binding("text", ""),
    { margin: 2 })
)
this.myDiagram.nodeTemplate = $$(
    go.Node,
    "Auto",
    $$(go.Shape, "Rectangle", { fill: "#67B73C",width:150,height:150 }),
    $$(
      go.Panel,
      "Table",
      { column: 0 },
      $$(go.TextBlock, {
        column: 0,
        margin: new go.Margin(3, 3, 0, 3),
        font: "bold 12pt sans-serif",
      },new go.Binding("text", "text")),
      $$("PanelExpanderButton", "LIST1", { column: 1 }),
      $$(
        go.Panel,
        "Vertical",
        { name: "LIST1", row: 1, column: 0, columnSpan: 2,itemTemplate:itemTemplates },
        new go.Binding("itemArray", "list1")
      )
    )
  );

由此可以發(fā)現(xiàn),可以給go.Panel配置itemTemplate屬性。在配置nodeTemplate屬性的時(shí)候,有兩種方式,第一種是我們?cè)?code>nodeTemplate重新聲明模板,或者是直接nodeTemplate后面直接寫對(duì)應(yīng)的配置項(xiàng)。這里推薦第一種方式,因?yàn)閷懺趦?nèi)部的話會(huì)把整個(gè)節(jié)點(diǎn)配置模板顯得很亂。而在上面的示例中使用的go.Shapego.TextBlock來(lái)示例說(shuō)明,在實(shí)際開發(fā)中可以使用更多的繪圖模板在其內(nèi)部進(jìn)行配置。

內(nèi)部多個(gè)繪圖模板的不同列的行循環(huán)

在很多時(shí)候,對(duì)渲染列表的展示主要是以一種key、value的鍵值對(duì)的形式表現(xiàn)。而事實(shí)上會(huì)有很多鍵值對(duì)以表格的形式進(jìn)行展示,并且我們還可以配置不同其他屬性,下面是配置了stroke屬性的鍵值對(duì)配列。示例如下

let itemTemplates = $$(go.Panel, "TableRow",
    $$(go.TextBlock, new go.Binding("text", "name"),new go.Binding("stroke", "color"),
    { column: 0, margin: 2, font: "bold 10pt sans-serif" }),
    $$(go.TextBlock, new go.Binding("text", "info"),new go.Binding("stroke", "color"),
    { column: 1, margin: 2 }),
)
this.myDiagram.nodeTemplate = $$(
go.Node,
"Auto",
$$(go.Shape, "Rectangle", { fill: "#67B73C",width:150,height:150 }),
$$(
  go.Panel,
  "Table",
  $$(go.TextBlock, {
    column: 0,
    margin: new go.Margin(3, 3, 0, 3),
    font: "bold 12pt sans-serif",
  },new go.Binding("text", "text")),
  $$("PanelExpanderButton", "LIST1", { column: 1 }),
  $$(
    go.Panel,
    "Table",
    { name: "LIST1", row: 1, column: 0, columnSpan: 2,itemTemplate:itemTemplates },
    new go.Binding("itemArray", "list1")
  )
)
);

這種情況的列表鍵值對(duì)的形式,可以在itemTemplate配置其面板屬性為TableRow,只需要配置column第幾列的繪圖模板,這個(gè)是時(shí)候行就會(huì)進(jìn)行循環(huán)展示,還可以對(duì)每一列的屬性通過(guò)go.Binding進(jìn)行動(dòng)態(tài)配置屬性的顯示。

注意:itemTemplate內(nèi)部設(shè)置TableRow的時(shí)候,其外部的go.Panel屬性必須是Table,否則將無(wú)法顯示

總結(jié)

對(duì)于類似vue中v-for的渲染列表,在gojs內(nèi)部也同樣存在,通過(guò)itemArray屬性來(lái)配置一個(gè)數(shù)組進(jìn)行渲染,如果需要配置的屬性過(guò)多,也可以在節(jié)點(diǎn)內(nèi)配置多個(gè)屬性,然后再itemTemplate繪圖模板中進(jìn)行解構(gòu)出來(lái)就可以了。除了上述幾種示例之外,也可以把其他的繪圖模板例如go.Group、go.Picture等等匯聚到itemTemplate里面。

以上就是一文詳解GoJs中g(shù)o.Panel的itemArray屬性的詳細(xì)內(nèi)容,更多關(guān)于GoJs go.Panel itemArray屬性的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • bootstrap實(shí)現(xiàn)輪播圖效果

    bootstrap實(shí)現(xiàn)輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了bootstrap實(shí)現(xiàn)輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 詳解js跨域原理以及2種解決方案

    詳解js跨域原理以及2種解決方案

    這篇文章主要介紹了js跨域原理以及解決方案,跨域問題是由于javascript語(yǔ)言安全限制中的同源策略造成的,想要進(jìn)一步了解跨域的朋友可以參考本文進(jìn)行學(xué)習(xí)
    2015-12-12
  • 用js判斷是否為360瀏覽器的實(shí)現(xiàn)代碼

    用js判斷是否為360瀏覽器的實(shí)現(xiàn)代碼

    這篇文章主要介紹了用js判斷是否為360瀏覽器的實(shí)現(xiàn)代碼,有時(shí)候我們需要判斷是否為360瀏覽器,包括百度聯(lián)盟后臺(tái)就有這樣的提示需要的朋友可以參考下
    2015-01-01
  • Javascript 實(shí)現(xiàn)復(fù)制(Copy)動(dòng)作方法大全

    Javascript 實(shí)現(xiàn)復(fù)制(Copy)動(dòng)作方法大全

    現(xiàn)在瀏覽器種類也越來(lái)越多,諸如 IE、Firefox、Chrome、Safari等等,因此現(xiàn)在要實(shí)現(xiàn)一個(gè)js復(fù)制內(nèi)容到剪貼板的小功能就不是一件那么容易的事了。
    2014-06-06
  • 移動(dòng)端效果之Swiper詳解

    移動(dòng)端效果之Swiper詳解

    這篇文章主要為大家詳細(xì)介紹了移動(dòng)端效果之Swiper的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 測(cè)試你的JS的掌握程度的代碼

    測(cè)試你的JS的掌握程度的代碼

    先不講文章的主題是什么,大家先來(lái)做做這些題目,看你能做對(duì)多少。這也是反映了你對(duì)JS基礎(chǔ)知識(shí)的掌握程度!
    2009-12-12
  • 淺談js中的this問題

    淺談js中的this問題

    下面小編就為大家?guī)?lái)一篇淺談js中的this問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • 使用JavaScrip模擬實(shí)現(xiàn)仿京東搜索框功能

    使用JavaScrip模擬實(shí)現(xiàn)仿京東搜索框功能

    使用js模擬實(shí)現(xiàn)京東的搜索框,主要用了js中的onfocus(注冊(cè)焦點(diǎn)事件),onblur(失去焦點(diǎn)的事件);本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2019-10-10
  • JavaScript驗(yàn)證Email(3種方法)

    JavaScript驗(yàn)證Email(3種方法)

    這篇文章主要介紹了JavaScript驗(yàn)證Email的3種方法,需要的朋友可以參考下
    2015-09-09
  • CSS javascript 結(jié)合實(shí)現(xiàn)懸浮固定菜單效果

    CSS javascript 結(jié)合實(shí)現(xiàn)懸浮固定菜單效果

    本篇文章給大家介紹基于CSS javascript 結(jié)合實(shí)現(xiàn)懸浮固定菜單效果,附有源碼下載,需要的朋友可以參考下
    2015-08-08

最新評(píng)論

集贤县| 武宁县| 达孜县| 江川县| 彩票| 博兴县| 高密市| 城口县| 永平县| 新巴尔虎右旗| 张掖市| 周口市| 泾源县| 阿坝| 龙门县| 贵德县| 临猗县| 分宜县| 广宁县| 中卫市| 花莲县| 肇州县| 岳阳县| 长岭县| 长兴县| 资溪县| 罗甸县| 克拉玛依市| 双桥区| 堆龙德庆县| 宝应县| 东台市| 清镇市| 桦甸市| 德格县| 卓资县| 临洮县| 临高县| 漳州市| 宜都市| 满洲里市|