亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

11-由于if功力不足引出的Helper

2024-04-27 15:07:35
字體:
來源:轉載
供稿:網友
 1 <!DOCTYPE html> 2 <html> 3   <head> 4     <META http-equiv=Content-Type content="text/html; charset=utf-8"> 5     <title>由于if功力不足引出的Helper - by 楊元</title> 6   </head> 7   <body> 8     <h1>由于if功力不足引出的Helper</h1> 9     <!--基礎html框架-->10     <table>11       <thead>12         <tr>13           <th>姓名</th>14           <th>性別</th>15           <th>年齡</th>16         </tr>17       </thead>18       <tbody id="tableList">19         20       </tbody>21     </table>22     23     <!--插件引用-->24     <script type="text/javascript" src="script/jquery.js"></script>25     <script type="text/Javascript" src="script/handlebars-1.0.0.beta.6.js"></script>26     27     <!--Handlebars.js模版-->28     <!--Handlebars.js模版放在script標簽中,保留了html原有層次結構,模版中要寫一些操作語句-->29     <!--id可以用來唯一確定一個模版,type是模版固定的寫法-->30     <script id="table-template" type="text/x-handlebars-template">31       {{#each student}}32         {{#if name}}33           {{#compare age 20}}34             <tr>35               <td>{{name}}</td>36               <td>{{sex}}</td>37               <td>{{age}}</td>38             </tr>39           {{else}}40             <tr>41               <td>?</td>42               <td>?</td>43               <td>?</td>44             </tr>45           {{/compare}}46         {{/if}}47       {{/each}}48     </script>49     50     <!--進行數據處理、html構造-->51     <script type="text/javascript">52       $(document).ready(function() {53         //模擬的json對象54         var data = {55                     "student": [56                         {57                             "name": "張三",58                             "sex": "0",59                             "age": 2360                         },61                         {62                             "sex": "0",63                             "age": 2264                         },65                         {66                             "name": "妞妞",67                             "sex": "1",68                             "age": 1869                         }70                     ]71                 };72         73         //注冊一個Handlebars模版,通過id找到某一個模版,獲取模版的html框架74         //$("#table-template").html()是jquery的語法,不懂的童鞋請惡補。。。75         var myTemplate = Handlebars.compile($("#table-template").html());76         77         //注冊一個比較大小的Helper,判斷v1是否大于v278         Handlebars.registerHelper("compare",function(v1,v2,options){79           if(v1>v2){80             //滿足添加繼續執行81             return options.fn(this);82           }else{83             //不滿足條件執行{{else}}部分84             return options.inverse(this);85           }86         });87         88         //將json對象用剛剛注冊的Handlebars模版封裝,得到最終的html,插入到基礎table中。89         $('#tableList').html(myTemplate(data));90       });91     </script>92   </body>93 </html>復制代碼

 

 

         很多時候,我們需要更加復雜的if判斷邏輯,顯然默認的if不能滿足我們的需求。

         本例中,利用Handlebars.js中Helper強大的擴展性,定義了一個compare,它用來比較兩個數的大小,如果第一個數大于第二個數,滿足條件繼續執行,否則執行{{else}}部分。

         Handlebars.registerHelper用來定義Helper,它有兩個參數,第一個參數是Helper名稱,第二個參數是一個回調函數,用來執行核心業務邏輯。本例中的函數,有三個參數,其中前兩個參數是需要比較的兩個數,第三個參數是固定的,就叫options,如果加了該參數,就說明這個Helper是一個Block,塊級別的Helper,有一定的語法結構,調用的時候加#號,就像if那樣。

         關于options的使用,小菜所了解的就是這種用法,return options.fn(this);表示滿足條件繼續執行,也就是執行{{#compare }}和{{else}}之間的代碼;return options.inverse(this);表示不滿足條件,也就是執行{{else}}和{{/compare}}之間的代碼。

         由于這是一個塊級別的Helper,所以調用要加#,例如:{{#compare age 20}},其中的age就是當前上下文中讀取到的年齡,20是小菜隨便寫的值,意思是只要age比20大,就顯示,否則全顯示?。

         讀者可以看出,Helper中寫的可以是任何js代碼,現在想想,就知道Handlebars有多靈活了吧!!

 

 

 

作者:楊元歡迎任何形式的轉載,但請務必注明出處。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视频精品在线| 国产91精品久久久久久久| 性欧美办公室18xxxxhd| 欧美性猛交xxxxx水多| 精品福利樱桃av导航| 97人人做人人爱| 欧美另类极品videosbest最新版本| 久久视频在线免费观看| 国产在线视频2019最新视频| 亚洲在线免费观看| 国产精品第一页在线| 97超级碰碰碰| 爽爽爽爽爽爽爽成人免费观看| 国产精品成人一区二区三区吃奶| 日韩欧美极品在线观看| 成人国产精品一区二区| 欧美精品电影在线| 日本精品性网站在线观看| 成人天堂噜噜噜| 国产精品黄色av| 成人a在线观看| 91高清在线免费观看| 国产美女高潮久久白浆| 午夜伦理精品一区| 伊人久久久久久久久久| 亚洲精品国产拍免费91在线| 亚洲级视频在线观看免费1级| 亚洲国产天堂久久综合| 亚洲精品美女在线观看| 亚洲人成电影在线观看天堂色| 国内精品久久久久影院 日本资源| 亚洲最新中文字幕| 国产精品日韩精品| 热久久这里只有精品| 久色乳综合思思在线视频| 亚洲国语精品自产拍在线观看| 国产精品亚洲一区二区三区| 亚洲理论电影网| 另类专区欧美制服同性| 最好看的2019的中文字幕视频| 久久亚洲私人国产精品va| 精品久久香蕉国产线看观看gif| 日韩一区二区三区在线播放| 国产99久久精品一区二区 夜夜躁日日躁| 欧美成人自拍视频| 26uuu日韩精品一区二区| www.日韩不卡电影av| 国产精品久久久久久久9999| 91理论片午午论夜理片久久| 国产精品视频区1| 中文字幕一区二区三区电影| 精品伊人久久97| 亚洲欧美激情精品一区二区| 成人xvideos免费视频| 国产福利视频一区| 国产精品av免费在线观看| 亚洲女人天堂成人av在线| 日本三级韩国三级久久| 综合国产在线观看| 欧美高清电影在线看| 日韩欧美主播在线| 精品性高朝久久久久久久| 国产精品视频最多的网站| 在线播放日韩av| 精品国产鲁一鲁一区二区张丽| 欧美在线视频在线播放完整版免费观看| 久久这里只有精品视频首页| 精品亚洲一区二区| 国产欧美 在线欧美| 成人xvideos免费视频| 日韩视频免费中文字幕| 成人av在线网址| 日韩电影中文字幕| 亚洲精品免费网站| 久久成人18免费网站| 亚洲xxxx妇黄裸体| 亚洲级视频在线观看免费1级| 亚洲影院高清在线| 亚州精品天堂中文字幕| 亚洲精品色婷婷福利天堂| 欧美黑人性猛交| 久久精品国产久精国产思思| 亚洲精品自拍偷拍| 色老头一区二区三区在线观看| 69视频在线免费观看| 久久视频在线看| 久久av资源网站| 精品视频—区二区三区免费| 亚洲成人精品久久久| 成人亚洲激情网| 精品亚洲aⅴ在线观看| 久久精品国产清自在天天线| 91福利视频网| 欧美黄色片在线观看| 国产精品一区二区在线| 亚洲精品国产美女| 欧美精品手机在线| 日韩精品高清在线观看| 国产精品爽黄69| 欧美韩日一区二区| 国产91av在线| 国产精品扒开腿做爽爽爽视频| 国内外成人免费激情在线视频网站| 欧美日韩精品在线视频| 性色av香蕉一区二区| 国产成人aa精品一区在线播放| 91中文在线观看| 97久久精品人人澡人人爽缅北| 国产精品成人品| 久久精品国产亚洲精品2020| 国产精品久久久久久亚洲影视| 777午夜精品福利在线观看| 98精品国产自产在线观看| 国产精品网红直播| 日韩电影免费观看中文字幕| 亚洲第一网站免费视频| 欧美国产日韩一区二区| 久久夜精品香蕉| 国产日韩欧美中文| 精品福利樱桃av导航| 亚洲美女又黄又爽在线观看| 色噜噜狠狠色综合网图区| 免费不卡欧美自拍视频| 在线观看国产精品淫| 久久成人一区二区| 久久人体大胆视频| 国产婷婷色综合av蜜臀av| 亚洲精品国产精品国自产观看浪潮| 中文在线资源观看视频网站免费不卡| 日韩视频免费在线观看| 国产精品黄色av| 欧美黑人xxx| 久久中文字幕在线| 欧美夫妻性视频| 国产va免费精品高清在线| 久久影视电视剧免费网站| 亚洲视频免费一区| 精品动漫一区二区| 久久久久久久久久久亚洲| 久久国产精品亚洲| 免费成人高清视频| 中文字幕亚洲激情| 成人av电影天堂| 91产国在线观看动作片喷水| 色综合色综合久久综合频道88| 91在线高清免费观看| 国产成人jvid在线播放| 欧美黄网免费在线观看| 欧美资源在线观看| 中文字幕亚洲欧美日韩高清| www.久久色.com| 国产一区二区三区四区福利| 午夜精品国产精品大乳美女| 久久亚洲国产精品成人av秋霞| 91精品视频专区| 欧美日韩亚洲国产一区| 欧美最顶级的aⅴ艳星| 2018国产精品视频| 在线观看欧美日韩| 精品中文字幕在线| 日韩成人av在线播放| 欧美极品少妇xxxxx| 国产精品人成电影| 欧美日韩精品在线观看|