javascript - AngularJS 如何与 JS minifiers 一起工作

标签 javascript angularjs

AngularJS 中的依赖注入(inject)是如何工作的?

是的,我读了很多东西,我知道如何使用它。

假设我们有以下 Controller :

app.controller('LoginCtrl', ['$scope', '$rootScope', '$http', '$location', function($scope, $rootScope, $http, $location) { /* ... */ }]);

我知道我们应该传递一个数组才能使用 JS 压缩器,这样 Angular 无论如何都会知道依赖项的真实名称。

假设我们实际使用 JS 压缩器并且 $scope 被翻译成 $s。 Angular 如何知道这个 $s 实际上是一个 $scope 因此它应该具有与 $scope 文档中描述的相同的接口(interface)?

最佳答案

缩小过程使函数的所有名称和参数更短,以减少文件的重量。因此,一旦您的 Controller 被缩小,他将看起来像这样:

函数(a, b, c, d) {/* ... */}]);

但是,如果您正在使用 $inject,或者将注入(inject)数组传递给函数,它会让您的函数知道应该将哪个确切的服务注入(inject)到您的 Controller 的每个参数中。

app.controller('LoginCtrl', [
'$scope', '$rootScope', '$http', '$location', 
function(a, b, c, d) { /* ... */ }]);

因此,一旦它被缩小, Angular 仍将是应该注入(inject)的服务名称和位置编号(数组中元素的索引),它们中的每一个都链接到 Controller 函数中的参数索引。因此,正如我们所见,顺序很重要

关于javascript - AngularJS 如何与 JS minifiers 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39543585/

相关文章:

javascript - document.getElementById ("test").value 和 document.getElementById ("test").innerHTML 有什么区别

javascript - FireFox 上的 CSS 溢出隐藏问题

javascript - jquery 这不适用于 settimeout,bug?

javascript - Grunt uncss 忽略 javascript 生成的 css

javascript - AngularJS http php 回显

javascript - 使用 ng-repeat 为特定记录动态数据的按钮切换

javascript - 最简单的 AngularJS 代码不起作用

javascript - 使用 NodeJs 中的文件系统模块更新 JSON 文件的内容

javascript - 将 UTF-8 编码的 JSON 从 DB 解析为 JS

html - 当在同一元素上添加带有终端选项的自定义指令时,ng-hide 不起作用