javascript - 将本地 javascript 变量的值替换为 Pug 的插值
问题描述
我是哈巴狗的新手,现在我正在尝试呈现一个 html 视图,其中包含一个表,其条目是从app.js
这是我的index.pug
doctype html
html(lang='en')
head
title Pug
body
table
- var columns = ['apple', 'pine', 'peach'];
tr
each column in columns
th #{column}
- for (var i = 0; i < 3; i++)
tr
each column in columns
td #{data[i].column}
这是我的app.js
const express = require('express');
const pug = require('pug')
var app = module.exports = express();
app.set('view engine', 'pug');
var foo = [{
apple: 1,
pine: 2,
peach: 3
}, {
apple: 4,
pine: 5,
peach: 6
},
{
apple: 7,
pine: 8,
peach: 9
}
];
app.get('/', (req, res) => {
res.render('index', {
data: foo
});
});
app.listen(3000, () => console.log('Listen to port 3000 now'));
我不确定我应该如何执行以下技巧:在内部index.pug
我确实声明了一个包含三个可能值的本地 js 数组apple
和pine
,peach
并且我使用 for-each 循环来迭代这个数组。但是,在 pug 的最后一行中,似乎 pug 没有用#{data[i].column}
with替换“列” apple
,pine
并且peach
循环正在迭代。
那么有没有办法告诉 pug 用我声明的同一个本地 js 变量的值column
替换?#{data[i].column}
谢谢
解决方案
使用 if 语句检查您的局部变量值和服务器端变量值是否相同,并基于此您可以将值赋予td
局部变量column
table
- var columns = ['apple', 'pine', 'peach'];
tr
each column in columns
th #{column}
- for (var i = 0; i < 3; i++)
tr
each column in columns
if column == data[i].column
td column
推荐阅读
- reactjs - 为什么反应选择默认值不显示
- asp.net-core - 将主页路由到区域内的索引?
- amazon-web-services - JupyterHub 上用于 AD 的 LDAPAuthenticator
- apache-spark - 为什么调用 show() 操作会在 spark 中创建两个单独的作业?
- elasticsearch - 如何在不更改设置的情况下不区分大小写进行排序
- sql - 连接服务器后批处理文件不执行 psql 查询
- android - DownloadManager - 即使有适当的权限,下载也会失败
- php - Laravel 多条目关系
- extjs - 了解 ExtJs 类属性
- terraform - Terraform sha 计算发生在文件创建之前