Nodejs artTemplate 原生语法是否支持if...else

Nodejs artTemplate 原生语法是否支持if…else

在使用中,经常遇到if…else的条件判断 但是<%if(…){%> html <%}%> <%else{%> html <%}%> 这样写模板居然报错。 请教下用过的童鞋。

3 回复

当然可以。artTemplate 是一个高效的 JavaScript 模板引擎,它支持多种条件判断语句,包括 ifelse。你提到的语法有些许不正确,正确的语法应该能够实现 if...else 的逻辑。

正确的 if…else 语法

在 artTemplate 中,if 语句的基本语法如下:

<% if (condition) { %>
    <!-- true block -->
<% } else { %>
    <!-- false block -->
<% } %>

示例代码

假设我们有一个简单的对象 data,其中包含一个布尔值 isAdmin,我们想根据这个值来显示不同的内容。

HTML 模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>artTemplate Example</title>
</head>
<body>
    <script id="template" type="text/html">
        <% if (isAdmin) { %>
            <h1>Welcome, Admin!</h1>
        <% } else { %>
            <h1>Welcome, User!</h1>
        <% } %>
    </script>

    <script src="https://cdn.jsdelivr.net/npm/art-template@4.13.2/lib/template-web.js"></script>
    <script>
        // 数据对象
        var data = {
            isAdmin: true
        };

        // 渲染模板
        var html = template('template', data);
        document.body.innerHTML = html;
    </script>
</body>
</html>

在这个例子中,如果 isAdmintrue,则会渲染 <h1>Welcome, Admin!</h1>;否则,会渲染 <h1>Welcome, User!</h1>

解释

  • <% %> 标签用于嵌入 JavaScript 代码。
  • if (isAdmin) 是条件判断,isAdmin 是数据中的一个属性。
  • 如果条件为真,则渲染 true block(即 Welcome, Admin!)。
  • 否则,渲染 false block(即 Welcome, User!)。

通过这种方式,你可以轻松地在 artTemplate 中使用 if...else 语句进行条件判断。希望这能解决你的问题!


http://cnodejs.org/topic/53d65a0258cac416711e690e 感谢这位同学的帖子。。。。 <%if(…){%> html <%}else{%> html <%}%> 直接这么写就好了。。。。 结贴 感谢神奇的cnode 。

artTemplate 是一个高效的 JavaScript 模板引擎,在 Node.js 中可以很好地支持条件判断语句。对于 if...else 结构,你可以直接在模板中使用 <% if(condition) { %> ... <% } else { %> ... <% } %> 的形式。

下面是一个具体的示例:

示例代码

假设你有一个数据对象 data,其中包含一个布尔值属性 isSpecial

const template = require('art-template');
const fs = require('fs');

// 引入模板文件
const source = fs.readFileSync('./template.art', 'utf-8');

// 定义数据对象
const data = {
    isSpecial: true,
    message: "This is a special item."
};

// 渲染模板
const result = template.render(source, data);
console.log(result);

模板文件 template.art

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div>
        <% if(isSpecial) { %>
            <h1><%= message %></h1>
        <% } else { %>
            <p>This is a regular item.</p>
        <% } %>
    </div>
</body>
</html>

解释

  • <% if(isSpecial) { %><% } else { %> 用于条件判断。
  • <%= message %> 用于输出变量的值。
  • 如果 isSpecialtrue,则会渲染 <h1> 标签中的内容;否则,渲染 <p> 标签中的内容。

通过这种方式,你可以轻松地在 artTemplate 模板中实现 if...else 条件判断。

回到顶部