在我们的项目中,我们将NPM与Browserify一起用于第三方依赖关系管理,与AngularJS结合使用效果很好(感谢CommonJS模块)。
以下代码显示了依赖关系结构,它适用于angular的依赖注入:
(function () {
'use strict';
var moment = require('moment');
var lodash = require('lodash');
var angular = require('angular');
var app = angular.module('myProject', [
require('angular-ui-router'),
require('angular-animate'),
require('angular-resource'),
require('angular-ui-bootstrap'),
require('ng-file-upload'),
require('angular-smart-table'),
]);
app.constant('moment',moment);
app.constant('lodash',lodash);
})();
我的问题是关于简单的javascript库,例如时刻或 lodash 。什么是将它们注入我的控制器和指令的最佳方法?是app.constant()
- 接近的方式还是有任何我不考虑的缺点?
我意识到这个库周围有很多“角度映射器”项目,但我不希望它们得到足够长的支持,因此宁可坚持使用原始库。
答案 0 :(得分:2)
对你的问题的评论确实指向正确的方向 - 首先寻找那些图书馆的角度化形式。如果没有,那么你可以做类似的事情 -
var lodash = angular.module('lodash', []);
lodash.factory('_', function() {
return window._;
});
然后使用此模块依赖项并在您的控制器和服务中注入“_”。
即使您使用app.constant
,它仍然可以作为依赖项“注入”。 “工厂”的方式让我觉得更灵活。