Код AngularJS не минимизируется должным образом, несмотря на использование синтаксиса массива в контроллерах

Для angular это хорошо известная проблема, связанная с необходимостью использования специального синтаксиса массива при добавлении зависимостей в контроллеры, чтобы избежать проблем минимизации, поэтому я использовал эту нотацию. Но кажется, что у инжектора все еще есть проблемы с этим кодом, которые появляются только после отправки его через gulp-uglify.

Нужно ли использовать этот синтаксис в других угловых элементах, таких как директивы? Кроме того, я использую объектную нотацию для определения одного из контроллеров, может ли это быть проблемой?

Некоторые основные настройки.

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

//Whitelist Soundcloud
app.config(function($sceDelegateProvider) {
    $sceDelegateProvider.resourceUrlWhitelist([
        'self',
        'https://w.soundcloud.com/**'
    ]); 
});

Директивы, одна с контроллером в нем.

app.directive('soundcloudHtml', ['$sce', function($sce){
    return {
        restrict: 'A',
        link: function(scope, element, attrs) {
            scope.musicPiece.soundcloud = $sce.trustAsHtml(scope.musicPiece.soundcloud);
        }
    }
}]);

app.directive('music', function(){
    return {
        restrict: 'E',
        scope:{
            type: '='
        },
        templateUrl: '/resources/data/music/music.html?po=343we', 
        link: function(scope, element, attrs) {
        },
        controller: ['$http', '$scope', function($http, $scope){
                        this.musicList = [];
                        $scope.Utils = Utils;
                        var ctrl = this;

                        $http.get('/resources/data/music/music.json').success(function(data){
                            ctrl.musicList = data;
                            Utils.updateTableOfContents();
                        });
                    }], 
        controllerAs: 'musicCtrl'
    };
});

1 ответ

Похоже, я пропустил, что конфиг также нуждается в этом шаблоне для минимизации. Конфиг должен быть

//Whitelist Soundcloud
app.config(['$sceDelegateProvider', function($sceDelegateProvider) {
    $sceDelegateProvider.resourceUrlWhitelist([
        'self',
        'https://w.soundcloud.com/**'
    ]); 
}]);

И не

//Whitelist Soundcloud
app.config(function($sceDelegateProvider) {
    $sceDelegateProvider.resourceUrlWhitelist([
        'self',
        'https://w.soundcloud.com/**'
    ]); 
});
Другие вопросы по тегам