风帆 Angular 前端

Sails Angular Frontend

好的,所以我环顾四周,找不到我要找的确切答案。在开发 Sails 应用程序(我是新手)时,它似乎默认使用 EJS 创建自己的前端。

  1. 这是正确的吗?
  2. 如果这是正确的,那么为什么有一个用于 sails generate frontend 的 npm
  3. 如果我想使用 Angular 前端是 sails-generate-frontend-angular 最好的选择吗?

谢谢!

首先,您需要将服务器模板 (EJS) 与 angular 分开。

仅仅因为 sails 默认为 EJS 模板引擎并不意味着您仍然不能将 angular 作为您的资产库并创建 angular 应用程序。 EJS 是(默认但不是唯一的选择)sails 用作一种编程语言,用于在服务器上构建模板,然后将其交付给客户端。 Angular 模板在交付给客户端后用于显示信息和执行客户端机器中已有的特定任务。

1.) 见上文

2.) Sails-generate-frontend 有助于设置您的资产管道。它创建 grunt 任务来复制图像文件并设置您的 javascript 库,例如 ANGULAR.js、jQuery 等以供您的 front-end.

使用

3.) 有可能。这取决于,很多人所做的是设置 2 个项目。他们使用 Sails 作为他们的 API 然后为他们的 Angular 应用程序设置第二个项目(特别是如果它是一个 SPA)。

如果您只使用 angular 是您应用程序中的特定位置(想想 jQuery 风格),那么您将使用类似 generate-front-end 的东西来获取 angular 库(例如 bower_compenents),并在您提升应用程序时将其放入您的资产中。它还使它可用,以便它可以放在您的 html 中以包含在您的应用程序中。

另一方面,我使用 sails 模板(我使用 Jade 而不是 EJS)在到达客户端之前在服务器上创建和修改我的 angular 模板。这是一种稍微高级的做法,如果您不了解在服务器和客户端上生成 html 之间的区别,可能会造成混淆。

另一种考虑方法是在服务器上创建索引页。此页面将包含您的 css 和脚本。它可能是您服务器上的唯一页面,其他所有内容都是 angular 呈现在客户端的模板,要求 JSON 调用。在这种情况下,您将使用 SAILS(ejs、jade 或其他)来呈现单个页面 INDEX.js,并且这可能是您拥有的唯一服务器模板。

不过,话虽这么说。 Sails 已经附带了这些东西。你不需要 sails-generate-frontend。它已经在标准帆应用程序中。