当前位置: 首页 > 面试题库 >

AngularJS + sails.js

景德海
2023-03-14
问题内容

我正在开发一个可以将sails.js用于后端并将AngularJS用于前端的应用程序。我以为我会使用Yeoman-
angular生成器https://github.com/yeoman/generator-
angular
创建一个Angular应用,一旦完成了前端html" target="_blank">逻辑,我就将使用创建一个Sails应用,

  1. npm install -g帆
  2. 航行新应用

然后,我将所有AngularJS文件传输到Sails文件夹。

但是,事情是AngularJS创建了一个像https://github.com/rishy/angular-jade-stylus-
seed这样的文件夹层次结构,并在运行“
grunt服务器”时创建了一个“ dist”文件夹,其中包含最终的生产版本。

另一方面,帆应用程序的“ sails new app”文件夹层次结构类似。

  • api
    • adapters/
    • controllers/
    • models/
    • policies/
    • services/
  • assets
    • images/
    • js /
    • styles/
    • favicon.ico
    • robots.txt
  • config/
  • node_modules /
  • views
    • home/
    • 403.ejs
    • 404.ejs
    • 500.ejs
    • layout.ejs
  • Gruntfile.js
  • app.js
  • package.JSON

所以,我的问题是:

  1. 现在,如何将我的Angular文件传输到该sails目录中,以及如何构造它?
  2. 由于sails使用“ sailslift”启动服务器,而angular使用“gruntserver”,我应该使用其中哪一个来启动我的sailsJs + AngularJs应用程序的服务器,以及在AngularJS之后创建的“ dist”文件夹呢?
  3. 我现在必须在Gruntfile.js中进行哪些更改,因为它现在应该包含来自Angular和Sails的代码了?
  4. 我应该在哪里保留不同的视图和样式文件,如何从Angular或Sails中访问这些文件?

我认为许多人都面临着类似的问题,因为AngularJS和SailsJs目前都很流行。应该有一个强大的样板来创建AngularJS +SailsJS应用程序,可惜现在没有了。


问题答案:

由于Sails是纯粹的后端框架,而Angular是纯粹的前端,因此它们可以很好地协同工作。将Angular生成器带入其中时,它可能会引起一些混乱,但是如果要从AngularSeed应用程序和Sails v0.10 开始,请遵循以下基本步骤:

  1. 使用创建一个新的Sails应用 sails new myApp
  2. 清除myApp/assets文件夹中的内容
  3. 将Angular Seed app文件夹的内容复制到myApp/assets
  4. myapp/views/layout.ejsAngular Seed app/index.html文件的内容替换
  5. layout.ejs文件中剪切掉所有非脚本标记内容(<body>标记之后和第一个<script>标记之前的所有内容,并用其替换myApp/views/homepage.ejs
  6. 放置<%-body%><body>标签之后layout.ejs

然后,您可以使用启动服务器,sails lift并在看到Angular应用程序http://localhost:1337

我把它放在Github上供参考。

使用此方法,您无需对Gruntfile做任何事情,并且永远也不会调用它grunt server-仅用于使用其测试服务器测试Angular应用,而您将用Sails替换它们。您仍然可以从Sails grunt-sync任务中受益,该任务可以在前端资产发生更改时对其进行监视和同步。

如果您确实要使用Yeoman
Angular生成器,则可以尝试直接在assetsSails应用程序的文件夹中生成应用程序,并使用该文件夹中的生成器命令。我以前没有使用过它,所以我不知道dist文件夹是做什么用的,但是似乎它安装的所有节点模块都在那里支持测试Web服务器(再次不需要,因为您有Sails)和测试套件(总是很好)。我能看到的唯一问题是,您是否需要Yeoman生成的Gruntfile中的某些任务。Sails处理较少的编译和CSS最小化(在生产模式下),但是它对Jade或Stylus不起任何作用,因此,如果您确实需要这些任务,则必须将其添加到SailsGruntfile中。



 类似资料:
  • angular是什么? AngularJS 最初由Misko Hevery 和Adam Abrons于2009年开发,后来成为了Google公司的项目。AngularJS弥补了HTML在构建应用方面的不足,其通过使用标识符(directives)结构,来扩展Web应用中的HTML词汇,使开发者可以使用HTML来声明动态内容,从而使得Web开发和测试工作变得更加容易。 安装angular bower

  • 更改历史 * 2018-1-27 高天阳 整理文档 补充$log * 2018-1-23 武超敏 增加$q内容 * 2017-9-17 张飞 添加参考链接 * 2017-6-1 杨丽 初始化文档 1 历史、现状和发展 1.1 历史 AngularJS最初由Misko Hevery和Adam Abrons于2009年开发,后来成为了Goog

  • Angular JS (Angular.JS) 是一组用来开发 Web 页面的框架、模板以及数据绑定和丰富 UI 组件。它支持整个开发进程,提供 Web 应用的架构,无需进行手工 DOM 操作。 AngularJS 很小,只有 60K,兼容主流浏览器,与 jQuery 配合良好。 数据绑定可能是 AngularJS 最酷最实用的特性。它能够帮助你避免书写大量的初始代码从而节约开发时间。一个典型的

  • 本文向大家介绍AngularJS ngCloak,包括了AngularJS ngCloak的使用技巧和注意事项,需要的朋友参考一下 示例 该ngCloak指令用于防止在加载应用程序时浏览器以原始(未编译)形式简短地显示Angular html模板。-查看源 的HTML ngCloak 可以应用于body元素,但是首选用法是将多个ngCloak指令应用于页面的一小部分,以允许逐步呈现浏览器视图。 该

  • 主要内容:Bootstrap,HTML 代码,指令解析,Bootstrap 类解析,JavaScript 代码,myUsers.js,JavaScript 代码解析AngularJS 的首选样式表是 Twitter Bootstrap, Twitter Bootstrap 是目前最受欢迎的前端框架。 查看 Bootstrap教程。 Bootstrap 你可以在你的 AngularJS 应用中加入 Twitter Bootstrap,你可以在你的 <head>元素中添加如下代码: <link re

  • 主要内容:AngularJS 全局 API,实例,实例,实例,实例API 意为 Application Programming Interface(应用程序编程接口)。 AngularJS 全局 API AngularJS 全局 API 用于执行常见任务的 JavaScript 函数集合,如: 比较对象 迭代对象 转换对象 全局 API 函数使用 angular 对象进行访问。 以下列出了一些通用的 API 函数: API 描述 angular.lowercas