【发布时间】:2015-03-03 23:01:42
【问题描述】:
我正在“老式”服务器上使用 AngularJS 开发应用程序的前端,我的意思是不支持 Python、Ruby、Java。我只能访问一个糟糕的phpMyAdmin db和php,我不会使用它们。
我已经习惯了 Django 的模板引擎(Jinja2 的灵感来源于此),并且我是block 继承功能 的忠实粉丝。不幸的是,AngularJS 只提供了一个常规的include 指令,它只允许将代码块包含在输出文件中。
另一方面,使用 Django (Jinja),您可以轻松地执行类似
的操作<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
{% block content %}
{% endblock content %}
</body>
<script type="text/javascript">
// ... some stuff that should be done on every page
</script>
</html>
对于您网站的每一页
{% extends "core/skeleton.html" %}
{% block content %}
<h1>This is my content...</h1>
<p>
...and I don't care about the rest.
</p>
{% endblock content %}
我发现它非常强大。
仅使用 AngularJS,您最终会使用 2 个 include 语句来实现相同的结果。加上你想在页面中嵌套的块越多,你需要使用的include 语句就越多(实际上,每个 Django block 会导致 AngularJS 中的 2 个ìnclude 语句)。
什么是满足我要求的最合适的模板引擎?即:
- 用 JS 编写以便它可以在“静态”服务器上运行
- 具有块继承功能
- 光
- 与 AngularJS 不冲突
【问题讨论】:
-
不确定它是否适用于 Angular,但如果你喜欢 Jinja2,请查看 mozilla.github.io/nunjucks
标签: javascript angularjs template-engine