Код 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/**'
]);
});