gpt4 book ai didi

html - Jade-Template 中带有 if 条件的每个循环

转载 作者:搜寻专家 更新时间:2023-10-31 23:25:23 25 4
gpt4 key购买 nike

嘿嘿。

我试图在每第 9 个元素的开头和之后编写一个 tr。为此,我使用了模运算符,如您在上面的示例中所见。
但是 如果我想将 td 写入相同的 tr 中,例如使用 else 条件它创建了另一个 tr

有没有人看出哪里出了问题?或者它如何工作?

代码示例

extends layout.jade

block body
table
each result, i in results
if (i%9==0)
tr
td.ranking
div.rank
p=(i+1)+'.'
div.points
p=result.points
div.person
p.name=result.name
p=result.company
else
td.ranking
div.rank
p=(i+1)+'.'
div.points
p=result.points
div.person
p.name=result.name
p=result.company

HTML 输出

Jade Html output

最佳答案

其中一种解决方案如下:

假设您的 express 处理程序中有一个变量 results:

var results =  ['a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r'];

请注意,这可能是一个对象数组。为了简单起见,我使用了从 a 到 `r.

的字符串

让我们将该数组拆分成行和列的二维数组:

var results2d = [];
while(results[0]) {
results2d.push(results.splice(0, 9));
}

我总是喜欢在快速处理程序中执行所有转换,以减少模板中额外代码行的数量。

因此您的results2d 将如下所示:

[ [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h' ],
[ 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p' ],
[ 'q', 'r' ] ]

然后您可以将其传递给 Jade 模板:

res.render('templateId', { results:results2d  });

在模板中,您的代码可能如下所示:

table  
- var i = 1;
each result in results
tr
each item in result
td.ranking
div.rank
p=(i++)+'.'
div.points
p=result.points
div.person
p.name=result.name
p=result.company

您的 HTML 输出如下:

results

希望对您有所帮助。

关于html - Jade-Template 中带有 if 条件的每个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21139971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com