我是Angular.js的新手,试图理解它与Backbone.js的不同之处……我们曾经在使用Backbone时使用Require.js来管理我们的包依赖关系。对Angular.js做同样的事情有意义吗?
当前回答
布莱恩·福特的回答
AngularJS有自己的模块系统,通常不需要RJS之类的东西。
参考:https://github.com/yeoman/generator-angular/issues/40
其他回答
是的,使用angular.js和require.js是有意义的,其中你可以使用require.js来模块化组件。
有一个种子项目同时使用了angular.js和require.js。
布莱恩·福特的回答
AngularJS有自己的模块系统,通常不需要RJS之类的东西。
参考:https://github.com/yeoman/generator-angular/issues/40
是的,在Angular中使用requireJS是有意义的,我花了几天时间来测试几个技术解决方案。
我在服务器端用RequireJS做了一个Angular种子。非常简单。 我使用SHIM符号表示没有AMD模块和没有AMD,因为我认为处理两个不同的依赖注入系统非常困难。
我使用grunt和r.js来连接服务器上的js文件,这取决于SHIM配置(依赖)文件。所以我只在我的应用程序中引用一个js文件。
欲了解更多信息,请访问我的github Angular Seed: https://github.com/matohawk/angular-seed-requirejs
我认为这取决于你项目的复杂程度,因为angular是模块化的。 你的控制器可以被映射,你可以在index.html页面中导入那些JavaScript类。
但万一你的项目变大了。或者你预料到了这样的场景,你应该把angular和requirejs集成在一起。在本文中,您可以看到这种集成的演示应用程序。
我认为这是一个主观的问题,所以我将提供我的主观意见。
Angular有一个内置的模块化机制。当你创建应用程序时,你要做的第一件事是
var app = angular.module("myApp");
然后
app.directive(...);
app.controller(...);
app.service(...);
如果你看一下angular-seed,它是angular的入门级应用,它将指令、服务、控制器等分离到不同的模块中,然后将这些模块作为依赖项加载到你的主应用中。
比如:
var app = angular.module("myApp",["Directives","Controllers","Services"];
Angular也会惰性加载这些模块(到内存中),而不是它们的脚本文件。
至于延迟加载脚本文件,坦率地说,除非你写的是非常大的东西,否则它会是一个过度的,因为angular本质上减少了你编写的代码量。在大多数其他框架中编写的典型应用,如果用angular编写,可以减少大约30-50%的LOC。
推荐文章
- 克隆对象没有引用javascript
- 验证字符串是否为正整数
- 如何获得一个键/值JavaScript对象的键
- 什么时候JavaScript是同步的?
- 如何在Typescript中解析JSON字符串
- Javascript reduce()在对象
- 在angularJS中& vs @和=的区别是什么
- 错误"Uncaught SyntaxError:意外的标记与JSON.parse"
- JavaScript中的querySelector和querySelectorAll vs getElementsByClassName和getElementById
- 如何/何时使用ng-click调用路由?
- 给一个数字加上st, nd, rd和th(序数)后缀
- 如何以编程方式触发引导模式?
- setTimeout带引号和不带括号的区别
- 在JS的Chrome CPU配置文件中,'self'和'total'之间的差异
- 用javascript检查输入字符串中是否包含数字