如何使用underscore.js作为模板引擎

如何使用underscore.js作为模板引擎

JavaScript库Underscore.js提供了一种直接且轻量级的模板技术,用于在HTML中创建动态信息。必须在HTML文件中使用script标签和自定义类型属性来定义模板以使用underscore.js作为模板引擎。模板应包含在script标签的内容中,其中还可以包含变量和JavaScript表达式。

_.template()函数编译模板并返回一个可调用的函数,该函数可以使用数据对象调用以生成所需的结果。调用构建的函数与任何数据对象一起可以在动态内容上简单地创建。

在模板组装完毕后,可以使用jQuery等JavaScript库将生成的HTML集成到DOM中。这使得用户可以开发交互式的、实时更新的动态网页,以响应用户输入。

作为模板引擎,underscore.js为HTML的动态内容创建提供了一种快速且灵活的方法。在构建列表和表格等复杂的UI元素时尤其有益,其中数据需频繁进行动态渲染和更新。使用underscore.js创建根据数据变化自动反应并实时改变UI的模板非常简单,使其成为开发动态Web应用的有力工具。

使用Underscore.js的步骤

以下指南将向用户展示如何使用Underscore.js作为模板引擎为HTML创建动态内容。由于产生的模板可以以不同的数据类型被多次重用,因此通过少量的代码就可以创建复杂的UI组件。此外,模板使用JavaScript表达式的方式使得包含复杂逻辑成为可能,从而实现高度个性化和动态的UI元素的创建。

  • 确保HTML文件使用了Underscore.js库。可以从Underscore.js网站下载库,或者通过CDN包含它。

  • 使用script标签和自定义类型属性在HTML文件中定义模板。模板应包含在script标签的内容中,其中还可以包含变量和JavaScript表达式。

  • 使用_.template()方法编译模板,将script标签的内容转换为函数。为了生成所需的结果,可以调用编译后的函数以及数据对象。

  • 使用数据对象调用构建的模板函数,生成最终的HTML结果。任何包含在模板中显示的数据的JavaScript对象都可以作为数据对象。

  • 使用JavaScript将创建的HTML插入到DOM中。可以使用jQuery或任何其他具有DOM操作函数的JavaScript库来实现。

示例1

在这个示例中,我们使用underscore.js作为模板引擎,在模板上显示多个数据值。我们首先添加jQuery和Underscore.js的CDN。然后我们定义了一个包含我们想在网页上显示的所有信息的对象。然后我们创建了一个模板,并使用info对象的值和所需的语法。我们还展示了如何使用列表和循环遍历列表以获取所有的值。

<html>
<head>
   <script src = "https://code.jquery.com/jquery-3.6.3.min.js"></script>
   <script src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.13.6/underscore-min.js"> </script>
</head>
<body>
   <script type = "text/template" id = "root-template">
      <h2> <%= title %> </h2>
      <h4> Name: <%= name %> </h4>
      <h4> Books: </h4>
      <ul>
         <% _.each(books, function(book) { %>
            <li><%= book %></li>
         <% }); %>
      </ul>
   </script>
   <div id = "root" > </div>
   <script>
      var info = {
         title: 'Using underscore.js as a template engine',
         name: 'ABC XYZ',
         books: ['Book 1', 'Book 2', 'Book 3'],
      }
      var compiledTemplate = _.template(('#root-template').html())
      var html = compiledTemplate(info)('#root').html(html)
   </script>
</body>
</html>

示例2

在这个示例中,我们将使用underscore.js作为模板引擎来遍历一个对象数组,并以表格格式将值显示在网页上。首先我们添加jQuery和Underscore.js的CDN。然后我们定义包含所有要在网页上显示的信息的对象数组。然后我们将创建模板并遍历该数组。

<html>
<head>
   <script src = "https://code.jquery.com/jquery-3.6.3.min.js"></script>
   <script src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.13.6/underscore-min.js"> </script>
   <style>
      table, th, td {
         border: 1px solid black;
         border-collapse: collapse;
      }
   </style>
</head>
<body>
   <script type = "text/template" id = "root-template">
      <h2> <%= title %> </h2>
      <p> The Student data is as follows: </p>
      <table >
         <thead>
            <tr>
               <th> Name </th>
               <th> Roll number </th>
               <th> Marks </th>
            </tr>
         </thead>
         <tbody>
            <% _.each(students, function(student) { %>
               <tr>
                  <td> <%= student.name %> </td>
                  <td> <%= student.roll %> </td>
                  <td> <%= student.marks %> </td>
               </tr>
            <% }); %>
         </tbody>
      </table>
   </script>
   <div id = "root"> </div>
   <script>
      var info = {
         title: 'Using underscore.js as a template engine',
         students: [
            { name: 'ABC', roll: 1, marks: 90 },
            { name: 'XYZ', roll: 2, marks: 80 },
            { name: 'MNO', roll: 3, marks: 92 },
            { name: 'IJK', roll: 4, marks: 5 },
         ],
      }
      var compiledTemplate = _.template(('#root-template').html())
      var html = compiledTemplate(info)('#root').html(html)
   </script>
</body>
</html>

Underscore.js是一个非常易于使用的模板引擎,可以快速开发Web应用程序。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程