在Nunjucks模板引擎中,你可以使用in
运算符来测试字典(对象)是否包含特定的关键字(属性)。以下是一个示例,展示如何在Nunjucks中检查字典是否包含某个关键字,并根据结果执行相应的操作。
假设你有一个字典(对象)如下:
{
"user": {
"name": "John Doe",
"email": "john.doe@example.com"
}
}
在Nunjucks模板中,你可以使用in
运算符来检查字典是否包含某个关键字。以下是一个示例模板:
{% set user = {
"name": "John Doe",
"email": "john.doe@example.com"
} %}
{% if 'name' in user %}
<p>Name: {{ user.name }}</p>
{% else %}
<p>Name is not available.</p>
{% endif %}
{% if 'email' in user %}
<p>Email: {{ user.email }}</p>
{% else %}
<p>Email is not available.</p>
{% endif %}
{% if 'age' in user %}
<p>Age: {{ user.age }}</p>
{% else %}
<p>Age is not available.</p>
{% endif %}
set
标签定义一个名为user
的字典。if
标签和in
运算符检查字典是否包含特定的关键字。根据上述模板,输出结果将会是:
<p>Name: John Doe</p>
<p>Email: john.doe@example.com</p>
<p>Age is not available.</p>
如果你是从服务器端传递数据到Nunjucks模板,可以这样做:
const express = require('express');
const nunjucks = require('nunjucks');
const app = express();
nunjucks.configure('views', {
autoescape: true,
express: app
});
app.get('/', (req, res) => {
const user = {
name: "John Doe",
email: "john.doe@example.com"
};
res.render('index.njk', { user });
});
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
views/index.njk
){% if 'name' in user %}
<p>Name: {{ user.name }}</p>
{% else %}
<p>Name is not available.</p>
{% endif %}
{% if 'email' in user %}
<p>Email: {{ user.email }}</p>
{% else %}
<p>Email is not available.</p>
{% endif %}
{% if 'age' in user %}
<p>Age: {{ user.age }}</p>
{% else %}
<p>Age is not available.</p>
{% endif %}
通过这种方式,你可以在Nunjucks模板中动态检查字典是否包含特定的关键字,并根据结果执行相应的操作。
云+社区技术沙龙[第12期]
算法大赛
腾讯技术开放日
云+社区开发者大会(北京站)
第三期Techo TVP开发者峰会
云+社区技术沙龙[第6期]
云+社区技术沙龙[第3期]
领取专属 10元无门槛券
手把手带您无忧上云