gpt4 book ai didi

javascript - Jinja2 的 JS 替代方案,可在带有 AngularJS 的静态服务器上工作

转载 作者:行者123 更新时间:2023-11-28 07:42:59 26 4
gpt4 key购买 nike

我正在“老式”服务器上使用 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 语句来实现相同的结果。另外,您想要在页面中嵌套的 block 越多,您需要使用的 include 语句就越多(实际上,每个 Django block 都会导致 2 个 ìninclude code> AngularJS 中的语句)。

满足我的要求的最合适的模板引擎是什么?即:

  • 用 JS 编写,以便可以在“静态”服务器上运行
  • 具有 block 继承功能
  • 与 AngularJS 不冲突

最佳答案

如果你真的想走这条路,你可以使用jade模板并在构建时将它们编译成html,例如https://www.npmjs.com/package/grunt-contrib-jade

Jade 有一个 extendinclude 指令。

这样做可能会与 Angular 作斗争。 UiRouter 提供组合和嵌套状态、抽象状态和命名 View 。

关于javascript - Jinja2 的 JS 替代方案,可在带有 AngularJS 的静态服务器上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27795940/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com