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

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

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

數(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: "冷水機組",
           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)寫過用Vue實現(xiàn)圖上效果的方法,此篇為用knockout.js實現(xiàn)上圖效果的方法,同樣通過模板將數(shù)據(jù)綁定到頁面。

模板代碼

<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>

請對比之前一篇Vue的方法,了解兩種方式模板綁定方式的不同。

模板寫完,在頁面上使用模板。

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: "冷水機組",
           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)展開
   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) {//展開折疊效果
   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的一致,在這里就不在贅述,如有需要可查看之前一篇。到此兩種方式算是全部寫完,在報表多的頁面,對于以上代碼,稍加修改即可復(fù)用,綁定數(shù)據(jù)非常方便。

總結(jié)

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

相關(guān)文章

  • Three.js利用dat.GUI如何簡化試驗流程詳解

    Three.js利用dat.GUI如何簡化試驗流程詳解

    dat.gui可以方便地向場景中添加控制條,隨時調(diào)整參數(shù)。下面這篇文章主要給大家介紹了關(guān)于Three.js利用dat.GUI如何簡化試驗流程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    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é)合實例形式簡單分析了Set與WeakSet的功能、使用方法及相關(guān)注意事項,需要的朋友可以參考下
    2017-03-03
  • Javascript前端UI框架Kit使用指南之Kitjs簡介

    Javascript前端UI框架Kit使用指南之Kitjs簡介

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

    ES6 Generator基本使用方法示例

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

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

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

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

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

    頁面定時刷新(1秒刷新一次)

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

    JS分頁的實現(xiàn)(同步與異步)

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

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

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

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

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

最新評論

江都市| 石屏县| 深水埗区| 馆陶县| 兰考县| 赫章县| 武威市| 北宁市| 长春市| 峨边| 吴忠市| 巴塘县| 英德市| 苍南县| 山阳县| 淳化县| 台中县| 博爱县| 伊春市| 当阳市| 巴马| 布拖县| 九江市| 北川| 宾川县| 娄烦县| 惠东县| 长兴县| 民权县| 墨江| 湘乡市| 桓台县| 吉木乃县| 台州市| 花垣县| 新野县| 宣城市| 吴川市| 嵊泗县| 永清县| 顺义区|