3.handlebars(if使用)

繼續(xù)學(xué)生清單handlebars演示,有時(shí)候?qū)W生數(shù)據(jù)會(huì)出現(xiàn)數(shù)據(jù)缺失的情況,不是每一個(gè)學(xué)生都有學(xué)生name這一項(xiàng),我們這邊不想展示沒(méi)有name屬性的學(xué)生信息要怎么操作呢?這里我們用到handlebars中的if判斷!

一:引入1.引入jquery 2.引入handlebars

<!--引入jquery/handlebars-->
<script type="text/javascript" src="./js/jquery-3.0.0.min.js"></script>
<script type="text/javascript" src="./js/handlebars-v4.0.10.js"></script>

二:寫handlebars模板

注意:{{#if name}}可以用來(lái)判斷當(dāng)前上下文中有沒(méi)有name屬性,它是嘗試去讀取name屬性,如果返回的為undefined、null、""、[]、false任意一個(gè),都會(huì)導(dǎo)致最終結(jié)果為假。

 <tbody class="student-temp">
    <script type="text/x-handlebars-template" id="student-temp">
        {{#each student}}   
         {{#if name}}
        <tr>
            <td>aa</td>
            <td>bb</td>
            <td>cc</td>
            <td>dd</td>
        </tr>
         {{/if}}
        {{/each}}
    </script>
    </tbody>

三:handlebars的取值 {{變量名}}

 <tbody class="student-temp">
    <script type="text/x-handlebars-template" id="student-temp">
        {{#each student}}   
         {{#if name}}
        <tr>
            <td>{{name}}</td>
            <td>{{age}}</td>
            <td>{{gender}}</td>
            <td>{{fraction}}</td>
        </tr>
         {{/if}}
        {{/each}}
    </script>
    </tbody>

四:渲染數(shù)據(jù)

在這里注意看數(shù)據(jù)結(jié)構(gòu)噢~ 第二組數(shù)據(jù)中沒(méi)有name屬性~

 <script>
    //    模擬數(shù)據(jù)
    var data = {
        "student": [
        {
            "name": "柳2",
            "age": '8',
            "gender": '女',
            "fraction": '89'
        },
        {
            "age": '9',
            "gender": '女',
            "fraction": '89'
        },
        {
            "name": "柳4",
            "age": '10',
            "gender": '女',
            "fraction": '89'
        }]
    };
    console.log(data);

    //    獲取到handlebars這個(gè)模板中的全部html內(nèi)容
    var studentTemp = $('#student-temp').html();

    //    編譯
    var HanStudent = Handlebars.compile(studentTemp);

    //把編譯完成的代碼放入到 .student-temp 的這個(gè)容器中
    $('.student-temp').html(HanStudent(data))

</script>

完整demo代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>if-demo</title>
    <style>
        table, th, td {
            border: 1px solid red;
            text-align: center;
        }
    </style>
</head>
<body>
<table>
    <thead>
    <tr>
        <th>姓名</th>
        <th>年齡</th>
        <th>性別</th>
        <th>分?jǐn)?shù)</th>
    </tr>
    </thead>
    <tbody class="student-temp">
    <script type="text/x-handlebars-template" id="student-temp">
        {{#each student}}
        {{#if name}}
        <tr>
            <td>{{name}}</td>
            <td>{{age}}</td>
            <td>{{gender}}</td>
            <td>{{fraction}}</td>
        </tr>
        {{/if}}
        {{/each}}
    </script>
    </tbody>

</table>
<script type="text/javascript" src="./js/jquery-3.0.0.min.js"></script>
<script type="text/javascript" src="./js/handlebars-v4.0.10.js"></script>
<script>
    //    模擬數(shù)據(jù)
    var data = {
        "student": [
        {
            "name": "柳2",
            "age": '8',
            "gender": '女',
            "fraction": '89'
        },
        {
            "age": '9',
            "gender": '女',
            "fraction": '89'
        },
        {
            "name": "柳4",
            "age": '10',
            "gender": '女',
            "fraction": '89'
        }]
    };
    console.log(data);

    //    獲取到handlebars這個(gè)模板中的全部html內(nèi)容
    var studentTemp = $('#student-temp').html();

    //    編譯
    var HanStudent = Handlebars.compile(studentTemp);

    //把編譯完成的代碼放入到 .student-temp 的這個(gè)容器中
    $('.student-temp').html(HanStudent(data))


</script>
</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 請(qǐng)參看我github中的wiki,不定期更新。https://github.com/ivonzhang/Front...
    zhangivon閱讀 7,761評(píng)論 2 19
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • <a name='html'>HTML</a> Doctype作用?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別? (1)、<...
    clark124閱讀 3,819評(píng)論 1 19
  • 嘀嘀嘀~啪。。。佩佩一掌把鬧鐘給按停了,迷迷糊糊地咕噥著,6點(diǎn)啊,要命啊,我上學(xué)趕圖的時(shí)候都沒(méi)起過(guò)這么早,穿衣洗漱...
    劉張震宇閱讀 312評(píng)論 4 2
  • 欲要春江壓明月,還從虛里看落花。 一江春水連天碧,一輪明月泣天白。 一江宛轉(zhuǎn)縈芳甸,花林月照雪飄霰。 歸人欲去承天...
    夏悠羽季閱讀 406評(píng)論 0 3

友情鏈接更多精彩內(nèi)容