我正在使用Jade客户端。如何在模板中引用全局JavaScript对象?
例如,我的Jade模板中有以下内容:
span.row-count (#{window.App.numberFormat(tbl.rows)})
window
应该引用每个页面上定义的全局window
对象,但是当我编译模板时,我可以看到它放了这个:
function(locals) {
jade.debug = [ {
lineno: 1,
filename: "views\\tables.jade"
} ];
try {
var buf = [], locals_ = locals || {}, tables = locals_.tables, window = locals_.window;
...
注意它是如何重新定义window
,认为它是一个本地(传入)变量,当它不是时。如何防止它被传递到locals表?
答案 0 :(得分:1)
你可以copy the variables进入本地环境(有点黑客):
for (var key in window) {
if (!context.hasOwnProperty(key)) {
context[key] = window[key];
}
}
或者您应该可以使用globals
option:
添加全局变量列表(作为字符串名称)以便在模板中访问