Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jade中的循环(当前称为“Pug”)模板引擎_Javascript_For Loop_Pug_Express - Fatal编程技术网

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++;