我有一个来自前一个开发项目的天赋,他一直在以我不熟悉的风格建造。
cartController.js:
(function() {
'use strict';
angular
.module('App')
.controller('cartController', cartController)
.controller('masterCartonModalInstanceController', masterCartonModalInstanceController)
.controller('summaryModalInstanceController', summaryModalInstanceController)
// more controllers ...
cartController.$inject = ['$http', '$stateParams', '$location', '$uibModal', '$log', 'toastr', 'DTOptionsBuilder', 'DTColumnDefBuilder', 'Cart', 'CartObservable'];
function cartController($http, $stateParams, $location, $uibModal, $log, toastr, DTOptionsBuilder, DTColumnDefBuilder, Cart, CartObservable) {
var vm = this;
...
}
masterCartonModalInstanceController.$inject = ['$uibModal', '$uibModalInstance', 'cart'];
function masterCartonModalInstanceController($uibModal, $uibModalInstance, cart) {
var vm = this;
...
}
})();
这就是我所熟悉的:
app.js
var portalApp = angular.module("portalApp");
editController.js
var portalApp = angular.module("portalApp");
portalApp.controller('editController', ['$scope', '$http', '$filter', function($scope, $http, $filter) {
'use strict';
var vm = this;
我的问题是:
答案 0 :(得分:0)
这两个代码都可以正常工作。但不是在缩小的情况下。
当您缩小JS时,它还会更改变量的名称并使其尽可能小。 例如:
app.controller('myCtrl',function($scope){
});
如果您缩小此代码,$ scope将更改为其他名称,这将是您的控制器的未知依赖项,因此此代码将会生效。
但是如果你写这样的代码
app.controller('myCtrl',['$scope',function($scope){
}]);
并缩小这段代码代码将如下所示:
app.controller('myCtrl',['$scope',function(a){
}]);
它没有重命名为单引号中提到的$scope
,因为minifier将其理解为值。你的控制器取代了' a'与范围' $范围'执行时,即你的代码仍然没问题。