将脚本标记用作模板系统

时间:2015-05-16 15:13:04

标签: javascript html dom template-engine

** 修订 **

我制作了这个基本的例子,我认为这样做是因为JavaScript可能是有用的,因为它是自己的模板引擎: http://jsfiddle.net/julienetienne/u6akrx7j/

<script>talk[0].text('Hello World!');</script>

这只是一个简单的例子,但你可以看到有很多可能性,例如。

  • 它不一定必须以这种方式检测标记节点,它可以通过class,id来完成。也可以获得函数的脚本节点
  • 您只需打印变量,例如p(&#39; Page Title&#39;);
  • 自我结束的元素列表可以类似于例如li(&#39;&#39;,菜单);
  • 您可以使用任何其他常用模板引擎清楚地构建其他复杂数据集。

在此编辑之前,我犯了将它与PHP进行比较的错误。我实际上认为它更像是一种替代方案,例如把手下划线胡须灰尘等。

但在我兴奋之前,我真的想知道在使用这种方式方面是否存在任何问题。 (我不关心新手最佳实践)。

有机模板系统的好处似乎非常明显。最大的优点是没有学习的语法,它比看到%{{foobar}}%标记更清晰。

考虑到我的例子只是一个微小的简约概念,请告诉我这个系统与普通模板引擎相比的缺点。

由于

1 个答案:

答案 0 :(得分:0)

它看起来像是一个PHP风格的模板系统,但显然不是: 在小提琴中,脚本部分可以写在页面的任何地方。

定义要插入DOM的文本位置的部分由行var talk = document.getElementsByTagName('div');和HTML的结构定义。

如果您使用的div比已经存在的{{1}}更多,则文本将出现在完全不同的(并且错误的)位置。

因此,无论如何,您不能独立于基础标记使用系统。这使得它与PHP中的用例不同,在PHP中,您可以通过定义它们在标记中的位置来回显变量。

如果您正在寻找一种如何实现模板系统的方法,请查看Angular或类似的前端框架。