artTemplate模版使用

循環{{each arr as value i}}
<body>
    <input type="text" placeholder="請輸入" id="keyword" value="java"/>
    <input type="button" value="確定" id="but" />
    <ul id="uu"></ul>


    <!-- 用於jq庫 -->
    <script src="../js/jquery-1.12.1.js"></script>
    <!-- 引入模版 -->
    <script src="../js/template-web.js"></script>
    <!-- 編寫模版 -->
    <script id="resultTemplate" type="text/html">
       	//each: 循環
        //s: data中的屬性
        //as: 關鍵字
        //value: 每次遍歷的值
        //i: 索引
        {{each s as value i}}
            <li>{{i}}:{{value}}</li>
        {{/each}}
    </script>
    <script>
        document.getElementById("but").onclick = function () {
            var keyword = document.getElementById("keyword").value;

            $.ajax({
                url: "https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su",
                data: { wd: keyword },
                success: function (data) {
                    //將模版和數據一起傳入, 返回的是已經編寫好的html代碼
                    var html = template("resultTemplate", data);
                    //將代碼直接放入即可使用
                    document.getElementById("uu").innerHTML= html;
                },
                dataType: "jsonp",
                jsonp: "cb",
                jsonpCallback: "haha"
            });
        };
    </script>
</body>
if語句 {{if isAdmain}}
<body>
    <div id="conetent"></div>

    <!-- 引擎模版 -->
    <script src="../js/template-web.js"></script>
    <!-- 模版 -->
    <script type="text/html" id="text">
        <!-- if語句:  isAdmain: data對象中的關鍵字 -->
        {{if isAdmain}}
            <!-- data中的關鍵字 -->
            <h2>title</h2>
            <!-- ul放在循環語句外面, 不循環 -->
            <ul>
                {{each list as value i}}
                    <li>{{i}}:{{value}}</li>
                {{/each}}
            </ul>
        {{/if}}

        {{if !isAdmain}}
            <h1>沒有該數據</h1>
        {{/if}}
    </script>
    <script>
        var data = {
            title:'條件判斷基本粒子',
            isAdmain:false,
            list:['文藝','青年','沙雕','白龍馬','火焰山','上完課','去拉屎']
        };
        var html = template("text",data);
        document.getElementById("conetent").innerHTML = html;
    </script>
</body>
當數據只是數組格式時
<body>
    <div id="content"></div>

    <!-- 引入引擎模版 -->
    <script src="../js/template-web.js"></script>
    <!-- 編寫模版 -->
    <script id="text" type="text/html">
        <ul>
            <!-- arr: 需要解析的那個數組的名字叫什麼就寫什麼 -->
            {{each arr as value i}}
                <li>{{i}}:{{value}}</li>
            {{/each}}
        </ul>
    </script>
    <script>
        var data = ["張三丰", "張翠山", "張無忌", "張大俠", "張二狗", "張小福"];
        //數組模式無法.出來, 所以封裝進對象裏
        var temp = {};
        temp.arr = data;
        var html = template("text", temp);
        document.getElementById("content").innerHTML = html;
    </script>
</body>
轉義{{#}} 與 不轉義{{}}
<body>
    <div id="content"></div>

    <!-- 引入引擎模版 -->
    <script src="../js/template-web.js"></script>
    <!-- 建模版 -->
    <script id="text" type="text/html">
        <p>不轉義: {{#value}}</p>
        <p>轉義: {{value}}</p>
    </script>
    <script>
        //數據
        var data = {value:'<span style="olor:red">這是一個P</span>'};
        //放入方法內
        var html = template("text",data);
        document.getElementById("content").innerHTML = html;
    </script>
</body>

案例

天氣查詢案例, 該編碼爲中國氣象網城市編碼(不是地區編碼

地址 http://cdn.weather.hao.360.cn/sed_api_weather_info.php
作用 獲取天氣信息
請求類型 get
參數 app:hao360(固定值); code:城市編碼(101010100北京);
_jsonp:回調函數名
返回字段說明 area:地區信息
pm25: pm2.5數據
pubdate:數據發佈日期
pubtime:數據發佈時間
time:時間戳
weather:天氣信息
date:時間
day: 白天
night:黑夜
dawn:黎明
<body>
    <select name="city" id="city">
        <option value="101010100">北京市</option>
        <option value="101280101">廣州市</option>
    </select>
    <input type="button" id="but" value="查詢" />
    <div id="conetent"></div>

    <script type="text/javascript" src="../js/jquery-1.12.1.js"></script>
    <script type="text/javascript" src="../js/template-web.js"></script>
    <script type="text/html" id="weatherTemplate">
        <ul>
            <span>發佈時間: {{pubdate}} - {{pubtime}}</span>
            <ul>
                <li>城市: {{realtime.city_name}}</li>
                <li>溫度: {{realtime.weather.temperature}}</li>
                <li>天氣: {{realtime.weather.info}}</li>
                <li>風向: {{realtime.wind.direct}}</li>
                <li>風級: {{realtime.wind.power}}</li>
            </ul>
        </ul>
    </script>
    <script>
        document.getElementById("but").onclick = function () {
            //獲取地區編碼
            var cityValue = document.getElementById("city").value;
            //發送跨域請求
            $.ajax({
                url: "http://cdn.weather.hao.360.cn/sed_api_weather_info.php",
                data: {
                    app: "hao360",
                    code: cityValue
                },
                jsonp: "_jsonp",
                dataType: "jsonp",
                success: function (data) {
                    console.log(data);
                    console.log("==========================================================");
                    //放入模版
                    var html = template("weatherTemplate", data);
                    document.getElementById("conetent").innerHTML = html;
                }
            });
        };
    </script>
</body>

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章