【问题标题】:What is the conceptual difference between AngularJS and view template engines in NodeJS?AngularJS 和 NodeJS 中的视图模板引擎之间的概念区别是什么?
【发布时间】:2017-10-10 00:16:49
【问题描述】:

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

据我目前所知,我将在 AngularJS 中使用控制器来控制视图的外观以及应填充哪些数据。

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

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

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

(我已经制作了 .html 扩展名以使用 EJS 呈现)

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

【问题讨论】:

  • 一个关键区别是每个的典型环境。 AngularJS 是客户端模板渲染,而 Express 是服务器端。不过,有一些重叠的可能性(两种环境都有 EJS 的变体)。
  • @JonathanLonowski,所以实际上,我需要确定要在模板引擎中显示哪个视图以及要显示哪些视图部分,而其他客户端动态部分(例如管理选项卡和一些 javascript 视图验证)应该用 AngularJS 编写?

标签: node.js angularjs ejs


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    另一方面,AngularJs 是客户端技术。您使用它来创建所谓的单一 Web 应用程序,这意味着 DOM 修改发生在客户端,并且应用程序仅与服务器数据交换。如果您关心的是模板,则它是纯 html。

    【讨论】:

      【解决方案3】:

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

      模板引擎:您只在需要与您的逻辑建立关系时使用它。例如:您是否需要在视图中放置一个带有变量的数字。您可以表达“玩”您的变量并决定何时将其放在您的视图中。基本上它就是一切。 实用程序可能因您的模板引擎而异,

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

      【讨论】:

        猜你喜欢
        • 2012-03-23
        • 2013-07-09
        • 2019-05-17
        • 2023-03-08
        • 2012-06-02
        • 2013-03-18
        • 2023-03-10
        • 2016-04-24
        • 1970-01-01
        相关资源
        最近更新 更多