我是Angular.js的新手,试图理解它与Backbone.js的不同之处……我们曾经在使用Backbone时使用Require.js来管理我们的包依赖关系。对Angular.js做同样的事情有意义吗?


当前回答

是的,这很有道理。

Angular模块不会尝试解决脚本加载顺序的问题 或者惰性脚本抓取。这些目标是正交的,都是模块 系统可以共存并实现它们的目标。 来源:Angular JS官方网站

其他回答

是的,使用angular.js和require.js是有意义的,其中你可以使用require.js来模块化组件。

有一个种子项目同时使用了angular.js和require.js。

是的,在Angular中使用requireJS是有意义的,我花了几天时间来测试几个技术解决方案。

我在服务器端用RequireJS做了一个Angular种子。非常简单。 我使用SHIM符号表示没有AMD模块和没有AMD,因为我认为处理两个不同的依赖注入系统非常困难。

我使用grunt和r.js来连接服务器上的js文件,这取决于SHIM配置(依赖)文件。所以我只在我的应用程序中引用一个js文件。

欲了解更多信息,请访问我的github Angular Seed: https://github.com/matohawk/angular-seed-requirejs

是的,专门为大型SPA服务。

在某些场景中,RequireJS是必须的。例如,我使用AngularJS开发PhoneGap应用程序,它也使用谷歌Map API。如果没有像RequireJS这样的AMD加载器,应用程序只会在离线时启动时崩溃,因为它不能来源谷歌地图API脚本。AMD加载器让我有机会向用户显示错误消息。

然而,AngularJS和RequireJS之间的集成有点棘手。我创建了angularAMD,使这个过程不那么痛苦:

http://marcoslin.github.io/angularAMD/

我会避免使用Require.js。我所见过的这样做的应用程序最终会把多种类型的模块模式架构弄得一团糟。AMD, reveal,不同口味的IIFE等。还有其他方法可以按需加载,比如Angular的loadOnDemand mod。添加其他东西只会让你的代码充满麻烦,产生低信噪比,让你的代码难以阅读。

是的,这很有道理。

Angular模块不会尝试解决脚本加载顺序的问题 或者惰性脚本抓取。这些目标是正交的,都是模块 系统可以共存并实现它们的目标。 来源:Angular JS官方网站