如何在Jade中执行JS?

3
我想知道如何在渲染前执行JS? 这种方法会失败
-#{somejs} // Outputs just the js-code
p #{somejs()} // Executes the js-code, but doenst render the html

// 在EJS中,我只需要写这样。但是在node.js中该怎么做呢?

<%- somejs() %>

// 我尝试在Jade中使用express-messages(https://github.com/visionmedia/express-messages)代替ejs


如果处理过程比较复杂,执行Jade模板渲染之前先执行JavaScript代码会更好,例如在调用res.render()的路由中。而对于像交替行颜色计算这样简单的任务,内联的- blah()就能解决问题。 - Mike Causer
3个回答

7
下面两种方法都可以使用:

以下两种方法对我来说都有效:

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

或者

div #{Math.sqrt(25)}

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


3

要在 jade 中使用 express-messages,请在您的模板中使用以下代码:

- var m = messages()
!= m

2
在jade中,只需使用-someJS()即可。更多示例请参见jade 网站 以及readme

顺便说一下:我正在尝试使用express-messasges(https://github.com/visionmedia/express-messages)和Jade而不是ejs。 - fabian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接