Angular JS可以替代EJS或Jade等模板引擎吗?

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

不过,我看到Angular JS可以提供​​相同的function。 那么为什么使用模板引擎? 使用它们是绝对必要的吗? angular能完全取代它们吗?

我想你是在正确的轨道simi。 从Angular开始时,很容易做“双模板” – 在服务器端和客户端模板化。 除非你绝对需要服务器来呈现HTML,否则你的服务器应该只是一个API,通常服务于JSON的REST服务。 公开一个API并像对待任何其他客户端(Android,iOS)一样对待您的Angular应用程序。 要看到这个方法的实例,请查看Angular Fullstack Yeoman生成器 。

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

与所有“这个”或“那个”的问题一样,答案是“取决于”。

首先它们不是唯一的,所以没有理由在它们之间进行select,但是你应该尽量在代码库中以可预见的方式使用它们

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

Angular(和其他客户端MVW框架)真的提供了很多伟大的事情。 第一个好处是可以轻松地在客户端加载dynamic内容,这可以提高响应速度并降低后端的复杂性(假设您已经需要一个API层,您可以免费获得很多东西)。 一个很好的例子就是一个自动刷新的主页提要,重新加载整个页面是浪费。 但是我们在AJAX上已经有很长一段时间了。 Angular也可以很容易地生成模板,所以你可以再次编写更less的代码和(如果正确的话)更可读,可testing的代码。

我认为正确的答案是使用你认为合适的。

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