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

knockoutjs模板實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)列表

 更新時(shí)間:2017年07月31日 16:20:28   作者:yn_zihuatanejo  
這篇文章主要介紹了knockoutjs模板實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)列表的實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧

數(shù)據(jù)結(jié)構(gòu)

/*數(shù)據(jù)*/
 var ko_vue_data=[
  {
   name: "總能耗",
   number:"0",
   energyone: 14410,
   energytwo: 1230,
   energythree: 1230,
   huanRatio: -36.8,
   tongRatio: 148.5,
   child: [
    {
     name: "租戶電耗",
     number:"1",
     energyone: 14410,
     energytwo: 1230,
     energythree: 1230,
     huanRatio: -36.8,
     tongRatio: 148.5,
     child: []
    },
    {
     name: "公共用電",
     number:"2",
     energyone: 14410,
     energytwo: 1230,
     energythree: 1230,
     huanRatio: -36.8,
     tongRatio: 148.5,
     child: [
      {
       name: "暖通空調(diào)",
       number:"2.1",
       energyone: 14410,
       energytwo: 1230,
       energythree: 1230,
       huanRatio: -36.8,
       tongRatio: 148.5,
       child: [
        {
         name: "冷站",
         number:"2.1.1",
         energyone: 14410,
         energytwo: 1230,
         energythree: 1230,
         huanRatio: -36.8,
         tongRatio: 148.5,
         child: [
          {
           name: "冷水機(jī)組",
           number:"2.1.1.1",
           energyone: 14410,
           energytwo: 1230,
           energythree: 1230,
           huanRatio: -36.8,
           tongRatio: 148.5,
           child: []
          }
         ]
        },
        {
         name: "熱力站",
         number: "2.1.2",
         energyone: 14410,
         energytwo: 1230,
         energythree: 1230,
         huanRatio: -36.8,
         tongRatio: 148.5,
         child: []
        }
       ]
      }
     ]
    }
   ]
  }
 ];

效果圖

之前已經(jīng)寫(xiě)過(guò)用Vue實(shí)現(xiàn)圖上效果的方法,此篇為用knockout.js實(shí)現(xiàn)上圖效果的方法,同樣通過(guò)模板將數(shù)據(jù)綁定到頁(yè)面。

模板代碼

<script type="text/html" id="ko-temp">
 <div class="tem">
  <div class="tem-p" >
   <div data-bind="event:{click:$root.toggleClick}"><i data-bind="style:{'visibility':number!=0?'visible':'hidden'},text:number"></i><span data-bind="text:name"></span></div>
   <!--綁定數(shù)據(jù)-->
   <div><span data-bind="text:energyone"></span></div>
   <div><span data-bind="text:energytwo"></span></div>
   <div><span data-bind="text:energythree"></span></div>
   <!--綁定class,使數(shù)值顯示出區(qū)分-->
   <div><span data-bind="css:{isgreen:huanRatio<0,isred:huanRatio>100},text:huanRatio+'%'"></span></div>
   <div><span data-bind="css:{isgreen:tongRatio<0,isred:tongRatio>100},text:tongRatio+'%'"></span></div>
  </div>
  <!--ko if:isFolder-->
  <div class="tem-c" data-bind="template:{name:'ko-temp',foreach: child}" ></div>
  <!--/ko-->
 </div>
</script>

請(qǐng)對(duì)比之前一篇Vue的方法,了解兩種方式模板綁定方式的不同。

模板寫(xiě)完,在頁(yè)面上使用模板。

html代碼

<div class="component-div" data-bind="template:{name:'ko-temp',foreach: ko_vue_data()}"></div>

JavaScript代碼

/*數(shù)據(jù)*/
 var ko_vue_data=[
  {
   name: "總能耗",
   number:"0",
   energyone: 14410,
   energytwo: 1230,
   energythree: 1230,
   huanRatio: -36.8,
   tongRatio: 148.5,
   child: [
    {
     name: "租戶電耗",
     number:"1",
     energyone: 14410,
     energytwo: 1230,
     energythree: 1230,
     huanRatio: -36.8,
     tongRatio: 148.5,
     child: []
    },
    {
     name: "公共用電",
     number:"2",
     energyone: 14410,
     energytwo: 1230,
     energythree: 1230,
     huanRatio: -36.8,
     tongRatio: 148.5,
     child: [
      {
       name: "暖通空調(diào)",
       number:"2.1",
       energyone: 14410,
       energytwo: 1230,
       energythree: 1230,
       huanRatio: -36.8,
       tongRatio: 148.5,
       child: [
        {
         name: "冷站",
         number:"2.1.1",
         energyone: 14410,
         energytwo: 1230,
         energythree: 1230,
         huanRatio: -36.8,
         tongRatio: 148.5,
         child: [
          {
           name: "冷水機(jī)組",
           number:"2.1.1.1",
           energyone: 14410,
           energytwo: 1230,
           energythree: 1230,
           huanRatio: -36.8,
           tongRatio: 148.5,
           child: []
          }
         ]
        },
        {
         name: "熱力站",
         number: "2.1.2",
         energyone: 14410,
         energytwo: 1230,
         energythree: 1230,
         huanRatio: -36.8,
         tongRatio: 148.5,
         child: []
        }
       ]
      }
     ]
    }
   ]
  }
 ];
 function addAttribute(dst){
  for(var i=0;i<dst.length;i++){
   var temp=dst[i];
   temp.isFolder=ko.observable(true);//默認(rèn)展開(kāi)
   for(var j=0;j<temp.child.length;j++){
    addAttribute(temp.child);
   }
  }
 }
 addAttribute(ko_vue_data);
 /*視圖模型*/
 function viewModel() {
  var self=this;
  self.ko_vue_data=ko.observableArray(ko_vue_data);
  self.toggleClick=function (event) {//展開(kāi)折疊效果
   window.event? window.event.cancelBubble = true : event.stopPropagation();
   var isFolder=event.isFolder();
   if(isFolder){
    event.isFolder(false);
   }else {
    event.isFolder(true);
   }
  }
 }
 ko.applyBindings(new viewModel());

css樣式同之前一篇Vue的一致,在這里就不在贅述,如有需要可查看之前一篇。到此兩種方式算是全部寫(xiě)完,在報(bào)表多的頁(yè)面,對(duì)于以上代碼,稍加修改即可復(fù)用,綁定數(shù)據(jù)非常方便。

總結(jié)

以上所述是小編給大家介紹的knockoutjs模板實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)列表,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Three.js利用dat.GUI如何簡(jiǎn)化試驗(yàn)流程詳解

    Three.js利用dat.GUI如何簡(jiǎn)化試驗(yàn)流程詳解

    dat.gui可以方便地向場(chǎng)景中添加控制條,隨時(shí)調(diào)整參數(shù)。下面這篇文章主要給大家介紹了關(guān)于Three.js利用dat.GUI如何簡(jiǎn)化試驗(yàn)流程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-09-09
  • ES6新數(shù)據(jù)結(jié)構(gòu)Set與WeakSet用法分析

    ES6新數(shù)據(jù)結(jié)構(gòu)Set與WeakSet用法分析

    這篇文章主要介紹了ES6新數(shù)據(jù)結(jié)構(gòu)Set與WeakSet用法,結(jié)合實(shí)例形式簡(jiǎn)單分析了Set與WeakSet的功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-03-03
  • Javascript前端UI框架Kit使用指南之Kitjs簡(jiǎn)介

    Javascript前端UI框架Kit使用指南之Kitjs簡(jiǎn)介

    本文給大家簡(jiǎn)單介紹了一款優(yōu)秀的Javascript前端UI框架--Kitjs,支持PC端以及手機(jī)開(kāi)發(fā)領(lǐng)域,非常的全面,這里推薦給有需要的小伙伴。
    2014-11-11
  • ES6 Generator基本使用方法示例

    ES6 Generator基本使用方法示例

    這篇文章主要介紹了ES6 Generator基本使用方法,結(jié)合實(shí)例形式分析了ES6 Generator基本功能、使用方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-06-06
  • three.js實(shí)現(xiàn)炫酷的全景3D重力感應(yīng)

    three.js實(shí)現(xiàn)炫酷的全景3D重力感應(yīng)

    這篇文章主要為大家詳細(xì)介紹了three.js實(shí)現(xiàn)炫酷的全景3D重力感應(yīng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 鼠標(biāo)滑在標(biāo)題上顯示圖片的JS代碼

    鼠標(biāo)滑在標(biāo)題上顯示圖片的JS代碼

    這篇文章主要介紹了鼠標(biāo)滑在標(biāo)題上顯示圖片的JS代碼,有需要的朋友可以參考一下
    2013-11-11
  • 頁(yè)面定時(shí)刷新(1秒刷新一次)

    頁(yè)面定時(shí)刷新(1秒刷新一次)

    頁(yè)面定時(shí)刷新的示例想必大家也見(jiàn)到不少,在本文將為大家介紹的是,如何實(shí)現(xiàn)1秒刷新一次,感興趣的朋友可以了解下本文
    2013-11-11
  • JS分頁(yè)的實(shí)現(xiàn)(同步與異步)

    JS分頁(yè)的實(shí)現(xiàn)(同步與異步)

    這篇文章主要介紹了JS分頁(yè)的實(shí)現(xiàn)(同步與異步),需要的朋友可以參考下
    2017-09-09
  • JavaScript解八皇后問(wèn)題的方法總結(jié)

    JavaScript解八皇后問(wèn)題的方法總結(jié)

    在國(guó)際象棋的8*8棋盤(pán)上如何擺放8個(gè)皇后使任一皇后無(wú)法吃掉其他皇后的問(wèn)題便是最初的八皇后問(wèn)題,此后也被不斷擴(kuò)展而作為經(jīng)典的算法題目,這里我們就來(lái)看一下JavaScript解八皇后問(wèn)題的方法總結(jié)
    2016-06-06
  • 一文詳解如何有效的處理Promise并發(fā)

    一文詳解如何有效的處理Promise并發(fā)

    這篇文章主要為大家介紹如何有效的處理Promise并發(fā)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評(píng)論

镇巴县| 海安县| 西乡县| 博客| 阳信县| 布尔津县| 宣化县| 饶阳县| 定襄县| 肥西县| 宣化县| 南木林县| 珲春市| 安义县| 南岸区| 盐城市| 岱山县| 任丘市| 开江县| 邮箱| 蓝田县| 博客| 永胜县| 舒兰市| 桂阳县| 阳新县| 垣曲县| 广汉市| 江门市| 深圳市| 仙桃市| 余干县| 福建省| 衡南县| 响水县| 古交市| 新邵县| 铜川市| 眉山市| 浏阳市| 稷山县|