如何引用“全局”变量?

时间:2013-11-24 22:40:42

标签: pug

我正在使用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表?

1 个答案:

答案 0 :(得分:1)

你可以copy the variables进入本地环境(有点黑客):

for (var key in window) {
    if (!context.hasOwnProperty(key)) {
        context[key] = window[key];
    }
}

或者您应该可以使用globals option

  

添加全局变量列表(作为字符串名称)以便在模板中访问