欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年07月31日 16:20:28   作者:yn_zihuatanejo  
這篇文章主要介紹了knockoutjs模板實(shí)現(xiàn)樹形結(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)寫過用Vue實(shí)現(xiàn)圖上效果的方法,此篇為用knockout.js實(shí)現(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>

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

總結(jié)

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

相關(guān)文章

  • javascript 檢測瀏覽器類型和版本的代碼

    javascript 檢測瀏覽器類型和版本的代碼

    如果對(duì)javascript了解不是特別深入的話,很容易就會(huì)寫出不兼容的代碼(就像我),這時(shí)候就得判斷瀏覽器了。比如事件偵聽、一些鼠標(biāo)和鍵盤事件、Range等,一些都會(huì)不一樣.下面列出幾種常用的檢測瀏覽器方法,以饗觀眾!
    2009-09-09
  • Bootstrap3 input輸入框插入glyphicon圖標(biāo)的方法

    Bootstrap3 input輸入框插入glyphicon圖標(biāo)的方法

    這篇文章主要介紹了Bootstrap3 input輸入框插入glyphicon圖標(biāo)的方法的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • 實(shí)例講解JS中setTimeout()的用法

    實(shí)例講解JS中setTimeout()的用法

    這篇文章主要介紹了JS中setTimeout()的用法,setTimeout()是屬于window的method,但我們都是略去window這頂層對(duì)象名稱,這是用來設(shè)定一個(gè)時(shí)間,時(shí)間到了,就會(huì)執(zhí)行一個(gè)指定的method,需要深入了解的朋友可以參考下
    2016-01-01
  • JS使用tofixed與round處理數(shù)據(jù)四舍五入的區(qū)別

    JS使用tofixed與round處理數(shù)據(jù)四舍五入的區(qū)別

    js中一般使用tofixed與round處理數(shù)據(jù)四舍五入,那么tofixed與round有什么區(qū)別呢?下面小編給大家分享JS使用tofixed與round處理數(shù)據(jù)四舍五入的區(qū)別,需要的朋友參考下吧
    2017-10-10
  • JavaScript資源預(yù)加載組件和滑屏組件的使用推薦

    JavaScript資源預(yù)加載組件和滑屏組件的使用推薦

    這篇文章主要介紹了JavaScript資源預(yù)加載組件和滑屏組件的使用推薦,分別為preload和slide的用法講解,使用起來非常簡單,需要的朋友可以參考下
    2016-03-03
  • js 彈出框只彈一次(二次修改之后的)

    js 彈出框只彈一次(二次修改之后的)

    彈出框只彈一次,看到網(wǎng)上也就寫的很多,可以直接使用的沒有幾個(gè),下面與大家分享個(gè)修改之后的代碼,需要的朋友可以參考下
    2013-11-11
  • javascript中節(jié)點(diǎn)的最近的相關(guān)節(jié)點(diǎn)訪問方法

    javascript中節(jié)點(diǎn)的最近的相關(guān)節(jié)點(diǎn)訪問方法

    parentNode——父節(jié)點(diǎn);firstChild——第一個(gè)子節(jié)點(diǎn);lastChild——最后一個(gè)子節(jié)點(diǎn);previousSibling——緊挨著的前面的兄弟節(jié)點(diǎn);這樣就可以作短途旅行,訪問當(dāng)前節(jié)點(diǎn)的某些相關(guān)節(jié)點(diǎn),感興趣的你可以參考下哈
    2013-03-03
  • js中獲取鍵盤事件的簡單實(shí)現(xiàn)方法

    js中獲取鍵盤事件的簡單實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄猨s中獲取鍵盤事件的簡單實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-10-10
  • Bootstrap幻燈片輪播圖支持觸屏左右手勢滑動(dòng)的實(shí)現(xiàn)方法

    Bootstrap幻燈片輪播圖支持觸屏左右手勢滑動(dòng)的實(shí)現(xiàn)方法

    最近在研究用bootstrap搭建網(wǎng)站,Bootstrap能自適應(yīng)pc端和手機(jī)端,并且移動(dòng)設(shè)備優(yōu)先,適合現(xiàn)如今移動(dòng)營銷,大家用的設(shè)備基本是觸屏的了,能用滑動(dòng)交互在小屏幕上體驗(yàn)會(huì)更好,那么如何實(shí)現(xiàn)呢?下面小編給大家介紹下bootstrap 手勢滑動(dòng)輪播圖的實(shí)現(xiàn)方法
    2016-10-10
  • javascript獲取當(dāng)前鼠標(biāo)坐標(biāo)的方法

    javascript獲取當(dāng)前鼠標(biāo)坐標(biāo)的方法

    這篇文章主要介紹了javascript獲取當(dāng)前鼠標(biāo)坐標(biāo)的方法,可針對(duì)不同瀏覽器獲取鼠標(biāo)的坐標(biāo)位置,是非常實(shí)用技巧,需要的朋友可以參考下
    2015-01-01

最新評(píng)論