2011-04-26 56 views
3

我想知道如何在渲染之前执行js?如何用Jade执行js?

这种失败

-#{somejs} // Outputs just the js-code 
p #{somejs()} // Executes the js-code, but doenst render the html 

//在EJS我只是写。但是,我怎样才能做到这一点与节点?

<%- somejs() %> 

//我尽量用快递-messasges(https://github.com/visionmedia/express-messages)用玉来代替EJS的

+0

如果处理是复杂的,那岂不是更好地渲染玉模板之前执行您的JavaScript?例如,在调用'res.render()'的路由中。对于像交替行着色计算这样的简单事情,内联' - blah()'就可以做到这一点。 – 2013-03-12 02:03:13

回答

7

对我来说,这两个以下工作:

- var test = Math.sqrt(16); 
    div #{test} 

div #{Math.sqrt(25)}

如果可能的话,请你发表您的somejs()?你确定它正在生成一个HTML字符串吗?

2

在玉简单地使用- someJS()更多的例子见玉website和在readme

+0

对不起,没有输出 – fabian 2011-04-26 07:18:09

+0

顺便说一句:我试着用Jade代替ejs来使用express-messasges(https://github.com/visionmedia/express-messages) – fabian 2011-04-26 07:21:17