尽管在控制器中使用了数组语法,AngularJS代码仍然没有缩小

时间:2014-09-16 19:46:42

标签: javascript angularjs minify gulp gulp-uglify

这是一个众所周知的问题,因为在将依赖项引入控制器以避免缩小问题时需要使用特殊的数组语法,所以我一直在使用这种表示法。但似乎注入器仍然存在此代码的问题,只有在通过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 个答案:

答案 0 :(得分: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/**'
    ]); 
});