5

我知道 Jade 用于生成 HTML 而不是 JavaScript,但是对于我正在工作的项目,如果我可以在每行不添加管道的情况下做到这一点,那就太好了,而且可以节省大量时间:

|   (function(){
|       //Some JavaScript Code
|       var foo="#{bar}";
|       console.log("This a JavaScript file generated with Jade");
|   })()

这个想法是使用这个模板的输出作为常规 JavaScript 的来源,包括:

<script type="application/javascript" src="foo.generated.js"></script>

所以做这样的事情:

script(type="application/javascript").
    (function(){
        //Some JavaScript Code
        var foo="#{bar}";
        console.log("This a JavaScript file generated with Jade");
    })()

不会解决我的问题,因为我需要输出没有 DOM 容器元素的纯 JavaScript。

有没有另一种方法可以做到这一点而不在每条线上添加管道?或者我必须假设 Jade 被设计为只生成 HTML,放弃,并在没有 Jade 的情况下找到其他解决方案?

提前致谢!

4

2 回答 2

0

我认为你应该使用:

res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Content-Type', 'text/javascript; charset=utf-8');
res.end(`(function(){
    //Some JavaScript Code
    var foo="${bar}";
    console.log("This a JavaScript file generated with Jade");
})()`);
于 2018-12-31T14:47:49.287 回答
0

生成所有 XML,包括 HTML。并且翡翠并不是为了投射大块的javascript而设计的。您可以做的最好的事情是创建一种方法来获取这些大块并修改变量。正如在示例中所做的那样。

于 2015-10-22T00:00:14.877 回答