NodeJS中AngularJS和视图模板引擎之间的概念差异是什么?

时间:2014-07-29 21:28:54

标签: node.js angularjs ejs

我很难在视图模板引擎之间做出区分,例如EJS和AngularJS。我理解视图模板引擎背后的概念,但我认为Angular几乎是一样的。在用IntelliJ构建项目的同时,它让我制作了由express提供的应用程序结构并选择了视图模板引擎。由于我没有被HTML语法所困扰,所以我选择了EJS而不是Jade。现在,由于我有更多的用户角色,我需要根据用户的角色更改视图。我尝试用EJS控制流程(if-then),但发现EJS的文档真的很差。这就是为什么我决定检查AngularJS,因为我的所有同事都在使用它。

据我所知,到目前为止,我将在AngularJS中安装控制器,它可以控制视图的外观以及应填写哪些数据。

在使用AngularJS时是否需要视图模板引擎?有什么好处吗?

我的代码使用routes,现在看起来像这样:

/* GET /register page. */
router.get('/', function(req, res) {
    res.render('enter.html');
});

(我已经使用EJS渲染了.html扩展名)

那么,我将不再使用res.render()并将使用AngularJS支持的控制器和视图?

3 个答案:

答案 0 :(得分:3)

根据我使用Angular的经验,您的Web服务器会公开API并提供静态文件。无需使用服务器端处理构建HTML响应,只需提供应用程序所需的数据。我倾向于认为我的Angular客户端与任何其他客户端(iOS,Android等)的后端断开连接。

答案 1 :(得分:1)

您可以将Express.js视为服务器端应用或服务器,用于侦听客户端请求,组装html页面并将其作为回复发送给客户端。类似于让我们在PHP世界中说Codeigniter。您可以使用纯HTML或使用Jade或其他模板语言。

另一方面,AngularJs是客户端技术。您可以使用它来创建所谓的单个Web应用程序,这意味着DOM修改发生在客户端,而应用程序只与服务器交换数据。如果你关心的是模板,那就很简单了。

答案 2 :(得分:1)

真正的区别在于技术范围。

模板引擎:只有在需要与逻辑建立关系时才使用它。例如:您是否需要在视图中输入带变量的数字。您可以使用快速“播放”您的变量并决定何时将其放入您的视图中。基本上它就是一切。 根据您的模板引擎,实用程序可能会有所不同,

AngularJS - Angular:在需要强大的项目时使用它。 Angular是一个框架;也就是说,Angular提供了一组已定义的实用程序,您可以更轻松地执行路由器,服务调用,双向数据绑定以及定义项目原型,该项目原型可以是基于Angular组件的AngularJS或Arquitecture的MVW。 / p>