将数字和变量连接到Jade的变量名称

时间:2014-11-08 23:48:05

标签: javascript pug template-engine

假设我有一组变量name1,name2,name3 ......等,我在div中写出来。 现在我可以使用#{name1}#{name2}#{name3}等打印出来但是可以在Jade中使用for循环来执行此操作

- for(var i = 0; i<3; i++) { div #{"name" + i} }

所以我希望输出为:

div #{name1}
div #{name2}
div #{name3}

这样的东西是为了打印出前3个元素....希望我有所了解。当我这样做时,我在Jade之上的方式似乎认为我只是将一个字符串放入div而不是变量。如果重要的是我将Express.JS用于我的应用程序。 TY

1 个答案:

答案 0 :(得分:0)

  

Jade似乎认为我只是将一个字符串放入div

因为你!

当您说&#34; ...而不是变量&#34;你真正的意思是对其价值的引用。这就是for循环擅长的。但"name" + i创建一个字符串,变量不作为字符串引用 - 有一个重要的例外:对象属性。

您有两种选择:

var names = [name1, name2, name3];
for (var i = 0; i < 3; i = i + 1) {
    div #{names[i]}
}

...或

var names = {
    name1: name1,
    name2: name2,
    name3: name3
};
for (var k in names) {
    if (Object.prototype.hasOwnProperty.call(names, k)) {
        div #{names[k]}
    }
}