角度应用程序在缩小时不起作用(可能是ng路由或其他)

时间:2017-01-12 14:00:43

标签: javascript angularjs bundling-and-minification

我有一个无限制的应用程序但是当使用uglify来组合angular,angular_routes和我的script.js时,我得到了一个注入器错误。我已经使用$ inject like对控制器进行了内联注释 这样:

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

 mainController.$inject = ['$scope', '$http', '$window', '$location'];

 app.controller('mainController', mainController);

 function mainController($scope, $http, $window, $location) {
   $window.ga('send', 'pageview', { page: $location.url() });
     }

我是否必须对ng-routes做任何事情?还是app.run?这是代码:

 app.config(function($routeProvider) {
        $routeProvider

            // route for the home page
            .when('/', {
                templateUrl : 'pages/home.html',
                controller  : 'mainController'
            })

app.run part:

app.run(function ($rootScope, $location) {///

如果您想看到完整代码,请点击此处: http://stephenbreighner.com/script.js

感谢

1 个答案:

答案 0 :(得分:2)

Angular的依赖注入基于参数名称工作,例如$scope。当缩小时,它将被称为一些不可读的名称,如b,因此angular不能查找应该注入的内容。要解决此问题,请使用数组表示法:

app.config(["$routeProvider", function($routeProvider) {
    $routeProvider

        // route for the home page
        .when('/', {
            templateUrl : 'pages/home.html',
            controller  : 'mainController'
        })
}])

app.run(["$rootScope", "$location", function ($rootScope, $location) {///