我正在使用closure-compiler来缩小我的角度应用的javascript。 app.config,app.run和主app控制器都可以正常工作。但是,其他控制器都没有工作,它们都是未定义的(angular.min.js:118错误:[ng:areq] http://errors.angularjs.org/1.5.8/ng/areq?p0=ContactCtrl&p1=not%20aNaNunction%2C%20got%20undefined)。
控制器都使用依赖注入来处理我需要访问的任何内容,因此我认为这不是问题所在。以下是我的一个控制器的定义示例:
app.controller('ContactCtrl', ['$scope', 'requestService',
function ContactCtrl($scope, requestService) { // stuff here }]);
我使用ui-router来切换状态:
$stateProvider
.state('app', {
url: '/',
templateUrl: 'js/components/home/home.html'
})
.state('feature', {
url: '/feature',
templateUrl: 'js/components/feature/feature.html',
controller: 'FeatureCtrl',
});
我还有另一个在html中声明的控制器:
<div data-ng-include="'js/components/home/contact.html'" data-ng-controller="ContactCtrl"></div>
我还需要为控制器做一些依赖注入吗?或者我应该使用其他一些缩小库?我喜欢这个,因为我可以通过指向一个目录来执行jar,并告诉它将所有js缩小为一个文件,所有这些都在一个快速命令中:
java -jar compiler.jar --js_output_file=out.js in1.js in2.js in3.js ...
它也是由Google制作的,所以我认为它应该适用于Angular。