Javascript Jade中的循环(当前称为“Pug”)模板引擎
我想使用一个简单的循环,如Javascript Jade中的循环(当前称为“Pug”)模板引擎,javascript,for-loop,pug,express,Javascript,For Loop,Pug,Express,我想使用一个简单的循环,如for(int I=0;I使用node我有一个stuff@stuff的集合,并像这样访问它: - each stuff in stuffs p = stuff.sentence 例如: - for (var i = 0; i < 10; ++i) { li= array[i] - } -for(变量i=0;i的情况下执行此操作: - var arr=['one', 'two', 'three']; - var s = 'string'; doc
for(int I=0;I使用node我有一个stuff@stuff
的集合,并像这样访问它:
- each stuff in stuffs
p
= stuff.sentence
例如:
- for (var i = 0; i < 10; ++i) {
li= array[i]
- }
-for(变量i=0;i<10;++i){
li=数组[i]
- }
您可以查看详细文档。这是一个非常简单的jade
文件,其中有一个循环。jade对空白非常敏感。在循环定义行(for
)之后,您应该为要进入循环的内容提供缩进(制表符)。您可以在不使用{/code>的情况下执行此操作:
- var arr=['one', 'two', 'three'];
- var s = 'string';
doctype html
html
head
body
section= s
- for (var i=0; i<3; i++)
div= arr[i]
-var arr=['1','2','3'];
-var s='string';
doctype html
html
头
身体
截面=s
-对于(var i=0;i您还可以通过while
循环(请参见此处:)来加快速度。此外,更简洁易懂的IMHO:
i = 10
while(i--)
//- iterate here
div= i
只需添加另一种可能性,因为它可能有助于尝试迭代数组并维护计数的人。例如,下面的代码遍历名为items
的数组,并且只显示前3项。请注意,每个和if
都是原生jade,不需要连字符
ul
- var count = 0;
each item in items
if count < 3
li= item.name
- count++;
ul
-var计数=0;
项目中的每个项目
如果计数小于3
li=项目名称
-计数++;
这是一种不寻常但很好的方法
无索引:
each _ in Array(5)
= 'a'
each _, i in Array(5)
= i
将打印:aaaaa
带有索引的:
each _ in Array(5)
= 'a'
each _, i in Array(5)
= i
将打印:01234
注意事项:在上面的示例中,我已将jade的每个迭代语法的val
参数指定给\uu
,因为它是必需的,但将始终返回未定义的帕格(从“jade”重命名)是一个用于全栈web应用程序开发的模板引擎。它为编写HTML提供了简洁明了的语法,并保持了严格的空格缩进(如Python)。它已使用JavaScript API实现。该语言主要支持两个迭代构造:each和while。可以使用“for”代替“each”。请参考此处的语言参考:
以下是我的一个片段:
你好,乔,我这里有一个问题:,我通过alessioalex解决了,但现在我有了新的问题:如果我的数据库结构是这样的,那么一张专辑我可以存储很多歌曲,对吗?为什么在app.js中做:var-album=db.model('album');var-album=new-album();album.songs.push({\u-id:'4f04b3bf71f5ed52200002'})
并且我得到了一个错误,无法调用未定义的方法“call”
我如何将其存储到右边?这可能是因为SongSchema
没有在album.js
中定义。我有一个数组x,console.log(x,x.length);显示如下:[{name:a,done:true},{name:c}]0是正常的吗?我缺少的是,但是您的while循环从10开始向下运行。这将以相反的顺序将项添加到DOM中。您可能不希望这样。@PhillipBurch它也可以反转:var i=0;while(i++<10)console.log(i-1)//=>0123456789
你知道如何删除以这种方式生成的元素之间的空白吗?@vsync一个黑客将使用span
而不是div
我的意思是,通常情况下。元素之间总是以这种方式存在空白,因为jade语法的工作方式会导致新行这是一种根据的标准方法。此外,如果在第一行的-
前面有一个破折号,则每个-
前面实际上不需要-
,如果每个-/code>前面有一个-(破折号),则会出现PUG错误。您能解释一下@stuff
?为什么一开始就有@
?非常感谢:-count++;