Ajax - 模板引擎方法 - <script type=“text/template“ id=“Temp“>

这篇博客介绍了如何使用模板引擎来动态生成HTML内容。通过创建一个JavaScript对象,定义了包含姓名、性别、年龄和爱好的数据,然后利用`<script type=text/template>`标签构建模板结构。模板引擎方法(template)被调用,传入模板ID和数据对象,生成的HTML片段插入到页面的`<ul>`元素中。示例中展示了如何在模板中使用数据对象的属性、方法以及逻辑表达式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>模板引擎方法</title>
    </head>
    <!-- 👉 1. 引入模板js文件 -->
    <script src="./libs/template-web.js"></script>
    <body>
        <ul></ul>

        <!-- 创建模板结构:我们只是需要参照这个结构,但是并不需要浏览器以html语法来解析这个结构 -->
        <!-- script标签有一个默认的type='text/javascript',它的作用就是告诉浏览器里面的内容是js代码,所以要以js语法进行解析 -->
        <!-- 在浏览器,有一个专门的type='text/template',就是用来描述模板结构的 -->
        <!-- 在模板中,可以使用你传入的数据对象的属性,模板内部会根据属性名称找到对应的值来使用 -->

        <!-- 你得指定在某个结构中你想显示的数据对象的属性名称 -->
        <!-- obj.obi.name -->

        <!--👉 2.创建模板引擎结构 -->
        <script type="text/template" id="textTemp">
            <li>{{name}}</li>
            <li>{{gender}}</li>
            <li>{{age}}</li>
            <li>{{hobby.one}}</li>
            <li>{{hobby['two']}}</li>

            <!-- 转大写 -->
            <li>{{name.toUpperCase()}}</li>
            <!-- 运算 -->
            <li>{{age + 10}}</li>
            <!-- 三元表达式 -->
            <li>{{age>=18?'成年':'未成年'}}</li>
            <!-- 拼接字符串 -->
            <li>{{'我的性别是' + gender }}</li>
            <!-- 逻辑运算 -->
            <li>{{area || '中国'}}</li>
        </script>
    </body>

    <script>
        // 👉 3.定义对象,保存模板配套数据
        let obj = {
            name: 'jack',
            gender: '男',
            age: 19,
            area: '',
            hobby: {
                one: '打球',
                two: '游泳',
            },
        };

        // 👉 4.调用模板引擎方法.   传入模板id和数据,返回生成动态结构
        // 🔔🔔 : template(模板id,数据对象)
        let html = template('textTemp', obj);
        document.querySelector('ul').innerHTML = html;
    </script>
</html>

这段代码本质上是一个简单的页面模板,其中包含了一些动态数据和静态文本。以下是一些可能的优化方法: 1. 使用CSS来美化页面样式,使其更加易读易用。 2. 将动态数据从后端动态获取,并使用模板引擎来渲染页面,这样就可以避免硬编码动态数据的问题。例如: ``` <p><span><%= user.getName() %></span>!购物车的合计金额:<%= cart.getTotalPrice() %>元</p> ``` 3. 将静态文本和动态数据分离,以便于维护和更新。可以将静态文本提取到一个单独的模板文件中,然后在后端将其和动态数据合并。例如: 模板文件: ``` <p><span>{{username}}</span>!购物车的合计金额:{{total}}元</p> ``` 后端代码: ``` Map<String, Object> model = new HashMap<String, Object>(); model.put("username", user.getName()); model.put("total", cart.getTotalPrice()); String renderedHtml = templateEngine.render("shopping-cart.html", model); ``` 4. 使用前端框架或原生JavaScript来实现动态更新,可以使用AJAX实现局部更新或使用模板引擎实现动态渲染。例如: 使用AJAX实现局部更新: ``` $.ajax({ url: "/api/cart", type: "GET", success: function(response) { $(".cart-total").text(response.total); } }); ``` 使用模板引擎实现动态渲染: ``` <p><span>{{username}}</span>!购物车的合计金额:<span class="cart-total">{{total}}</span>元</p> <script type="text/template" id="cart-template"> <p><span>{{username}}</span>!购物车的合计金额:<span class="cart-total">{{total}}</span>元</p> </script> <script> var model = { username: "张三", total: 100.00 }; var renderedHtml = templateEngine.render($("#cart-template").html(), model); $("#cart-container").html(renderedHtml); </script> ``` 其中,templateEngine是一个模板引擎库,可以根据具体的使用情况选择不同的库,例如Handlebars、Mustache等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Henry_ww

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值