【问题标题】:Templating engine for node.jsnode.js 的模板引擎
【发布时间】:2010-11-02 00:42:32
【问题描述】:

我正在寻找一个考虑到这些特定要求的模板引擎:

必须:

  • 逻辑支持(if/else/etc)
  • 包含文件/继承(即子/主模板)
  • 不是 HAML

理想:

  • 丰富的标签/过滤器(a-la Django)
  • 自定义标签/过滤器

【问题讨论】:

  • 为什么不在客户端做模板,直接返回json给客户端呢?节省了相当多的带宽,如果您通过 ajax 调用加载 JS 模板,而不是像将它们放在 <script type="text/html"> 标签中那样的黑客攻击,您甚至不需要无效的 HTML。
  • 你可以看看那个问题,你可能会在里面找到答案:stackoverflow.com/questions/1787716/…

标签: templates node.js


【解决方案1】:

Jade 看起来将成为 Node.js 的“标准”模板语言/引擎。它有点像 HAML,只是它完全不是 HAML。好多了。

它没有主/子模板,但我已经向 TJ(作者)提到了它,我可能会推动它。现在你只需要在渲染模板时自下而上地工作(即通过变量将子模板应用到父模板),在大多数情况下我认为这不是什么大问题。

编辑: Jade 现在支持继承:https://github.com/visionmedia/jade#a11

【讨论】:

  • 您能澄清一下“标准”是什么意思吗?最广泛的采用?瑞恩达尔本人的永恒祝福?
  • 看起来很糟糕,我不敢相信有多少用于 NodeJS 的半成品模板引擎甚至比不上使用 Django 或 Rails 时所获得的效果
【解决方案2】:

看来 simonw 的 djangode 是我需要的:

这是你如何加载它:

loader.load_and_render('template.html', context, function (error, result) {
    if (error) {
        dj.default_show_500(req, res, error);
    } else {
        dj.respond(res, result, 'text/plain');
    }
});

模板语法似乎是Django 1.1 templates的完整端口

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 2013-03-14
    • 2012-09-04
    • 1970-01-01
    • 2016-05-19
    相关资源
    最近更新 更多