如何使用jade中的变量调用数组的值

时间:2016-09-30 22:00:19

标签: javascript arrays node.js pug

无法弄清楚为什么无法使用JS / Jade来帮助调用数组中的值。这是在.jade文件的脚本内调用的。

该数组包含大约400个条目,其中一个条目如下:

myFood[10]['Cake'] = 50

使用变量i而不是直接输入数字10时会发生错误。

使用:

alert (i)                     // 10
alert (#{myFood[10]['Cake']}) // 50

错误:

alert (#{myFood[i]['Cake']})  // Error, Cannot read property 'Cake' of undefined.

1 个答案:

答案 0 :(得分:1)

首先,要知道Jade最近被重命名为"pugjs"

我假设i是javascript变量,正如您在评论中所述。

pug(jade)上下文和浏览器Javascript上下文是两个非常不同的东西,所以如果你在浏览器Javascript中定义i,jade就不会将它看作变量,只是明文等待被解释为浏览器。这就是myFood[i]undefined的原因,从而导致此错误。

定义jade变量的正确方法是在短划线(-)前加上前缀,如here所述。

完整的代码是:

- var i = 10;
alert (#{i})                  // 10
alert (#{myFood[10]['Cake']}) // 50

您注意到我还更改了第一个提醒,告诉哈巴狗将#{i}部分替换为i的实际值。

如果您想访问每个值,我强烈建议您使用loops而不是使用i来访问数组。

混合哈巴狗和javascript有点棘手,祝你好运!