【发布时间】:2013-10-01 06:09:18
【问题描述】:
我知道 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 的情况下寻找其他解决方案?
提前致谢!
【问题讨论】:
-
您正在使用 Jade 生成 JavaScript 文件?为什么?
-
@minitech 我知道 Jade 不是这样做的理想工具,但我问是因为我正在处理的项目具有允许我从内部模型生成 HTML 模块的功能,对于我必须开发的特定功能,如果我可以使用相同的已开发功能来生成纯 JavaScript 文件,我将节省大量时间和代码行。谢谢!
-
所以你的 JavaScript 包含嵌入的 HTML?
-
@minitech 不一定,但它让我可以访问其他内部服务提供的信息,这些信息在渲染时注入到传递给模板的模型中。通常这用于生成 HTML,但在这种特殊情况下,我需要为每个用户动态生成一个 JavaScript 文件,并且需要很长时间。
-
什么样的数据进入模板?它只是字符串替换,还是更复杂? (顺便说一句,你的问题的答案是“是”。例如,Jade 会逃避很多你可能不想逃避的事情,它会不会也逃避一些事情。)
标签: javascript pug