无法弄清楚为什么无法使用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.
答案 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有点棘手,祝你好运!