Angular JS可以替代像EJS或Jade这样的模板引擎吗?

时间:2015-07-04 04:16:44

标签: angularjs node.js

我是MEAN堆栈的新手。我已经看到在开发节点JS应用程序时使用模板引擎,并意识到它可以通过集成服务器中的值来使静态文档动态化。

但是,我看到Angular JS提供了同样的东西。那为什么要使用模板引擎?是否绝对有必要使用它们?角度可以完全取代它们吗?

3 个答案:

答案 0 :(得分:3)

我认为你正走在正确的轨道上。当从Angular开始时,很有可能做“双重模板化” - 在服务器端和客户端模板化。除非你绝对需要服务器来呈现HTML,否则你的服务器应该只是一个API,通常是服务于JSON的REST服务。公开API并像对待任何其他客户端(Android,iOS)一样对待您的Angular应用程序。要查看此方法的示例,请查看Angular Fullstack Yeoman generator

有充分的理由希望服务器呈现完整的HTML响应,SEO可能是最常见的。是否值得额外努力是一项设计决定。

答案 1 :(得分:1)

与所有“this”或“that”的问题一样,答案是“它取决于”。

首先它们不是独占的,所以没有理由在它们之间做出选择,但你应该尝试在代码库中以可预测的方式使用它们

服务器端模板很好,因为它通常不那么复杂,并且降低了客户端计算成本。如果您的页面的一部分不需要在客户端是动态的,那么它是EJS的一个很好的候选者。一个示例可能是CRM应用程序中的动态菜单,您只需使用配置更新来更改内容。

Angular(和其他客户端MVW框架)真的提供了很多很棒的东西。第一个直接好处是您可以轻松地在客户端加载动态内容,这可以提高响应速度并降低后端的复杂性(假设您已经需要API层,您可以免费获得大量内容)。一个很好的例子是自动刷新的主页提要,重新加载整个页面是一种浪费。但是大多数情况下我们已经使用了AJAX很长一段时间。 Angular还可以轻松生成模板,因此您可以再次编写更少的代码和(如果做得好的话)更易读,可测试的代码。

我认为正确的答案是在你认为合适时使用两者。

答案 2 :(得分:0)

NO。 Angularjs不能替代像EJS或Jade这样的模板引擎。您需要使用任何一个模板引擎。如果您喜欢ejs模板引擎,那么您可以在该模板中使用angularjs代码。假设这是你的常规HTML,你可以在其中包含angularjs。