javascript - 如何重构 Angular 依赖注入(inject)以进行串联和缩小?

标签 javascript angularjs gulp gulp-concat gulp-uglify

我已将 Angular 应用程序写入单独的文件中,以提高可读性以及轻松找到要编辑/编码的内容的方法。这是我的 app.js,需要依赖项。

app.js

var app = angular.module('app', ['ngResource', 'ngRoute', 'app.services', 'app.controllers', 'app.feed','app.directives', 'app.factories']);

app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
    ...
}]);

这是如何写出依赖项的示例。

服务.js

var app = angular.module('app.services', []);

app.factory('AuthService', ['$scope'], function($scope) {
    ...
}]);

但是,当我尝试连接脚本时,应用程序会不断重新定义。我想过删除 var 声明,但是,我喜欢将文件分开。

我如何才能在 app.js 的依赖注入(inject)保持完整的情况下写出这个代码,同时仍然保持文件独立。

最佳答案

为了防止不断重新声明您的应用程序变量,您可以利用模块模式:Angular Style Guide:Modules 。 而不是在每个依赖项中显式声明应用程序:

var app = angular.module('app.services', []);

app.factory('AuthService', ['$scope'], function($scope) {
    ...
}]);

您可以将服务、组件、指令、 Controller 等定义为正确模块的一部分:

angular.module('app.services')
.factory('AuthService', ['$scope'], function($scope) {
    ...
}]);

声明“app.services”模块只需发生一次。

参见:Angular Style Guide:Modules以获得更好的解释。

关于javascript - 如何重构 Angular 依赖注入(inject)以进行串联和缩小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35418954/

相关文章:

javascript - 使用 Angular UI-Router 的动态主体类

javascript - 如何使用 Uglify2 cli 修改顶级变量名称

angularjs - 将隔离范围变量从指令传递到其 Controller

javascript - 使用 Angular 和 Node 进行路由

css - 错误 : File to import not found or unreadable: foundation

javascript - 让 $.getScript ("") 不在请求末尾添加数字

javascript - $ ('.classname' ).each(...) 的纯 JavaScript 等价物是什么?

javascript - 加入并缩小第三方 javascript 库

javascript - 仅当单击 Chrome 控制台的 console.log 中的链接时,Sourcemaps 才起作用

javascript - 如何从 mocha.opts 文件中正确地要求模块