Javascript Jade模板如何使用客户端全局变量?
假设我打开了一个浏览器,并且在JavaScript中声明了一个全局变量Javascript Jade模板如何使用客户端全局变量?,javascript,pug,Javascript,Pug,假设我打开了一个浏览器,并且在JavaScript中声明了一个全局变量 window.myGlobalVar = 'Hello!'; .foo= myGobalVar 然后,我编译了一个jade模板,用于使用该变量的客户端渲染 window.myGlobalVar = 'Hello!'; .foo= myGobalVar 我是这样编译的: jade.compile('.foo= myGobalVar', { client: true, compileDebug: false })
window.myGlobalVar = 'Hello!';
.foo= myGobalVar
然后,我编译了一个jade模板,用于使用该变量的客户端渲染
window.myGlobalVar = 'Hello!';
.foo= myGobalVar
我是这样编译的:
jade.compile('.foo= myGobalVar', {
client: true,
compileDebug: false
}).toString()
这将生成此模板函数:
function anonymous(locals) {
var buf = [];
var locals_ = (locals || {}),
myGobalVar = locals_.myGobalVar;
jade.indent = [];
buf.push("\n<div class=\"foo\">"
+ (jade.escape(null == (jade.interp = myGobalVar) ? "" : jade.interp))
+ "</div>");;
return buf.join("");
}
但是该死的,那会让我觉得脏吗。。。当然有更好的方法吗?您可以将要在jade模板中使用的全局变量的名称,以及options对象传递给compile函数。参见jade api文档:
查看此小提琴以查看其实际操作:您的小提琴没有翡翠文件没有翡翠文件!玉码就是字符串。请再看一遍小提琴,重新考虑一下你的否决票。但与导入的momentjs库的链接已断开。我更新了fiddler链接(只是让大家注意
myGobalVar
vsmyGlobalVar
)
jade.compile(template, { globals: ['globalone','globaltwo']})