Ho ancora un altro problema con il minification. Questa volta è a causa del servizio $ scope passato al controller della direttiva. Vedere il codice sottostante:AngularJS: problema di minification nella direttiva
angular.module('person.directives').
directive("person", ['$dialog', function($dialog) {
return {
restrict: "E",
templateUrl: "person/views/person.html",
replace: true,
scope: {
myPerson: '='
},
controller: function ($scope)
{
$scope.test = 3;
}
}
}]);
Se commento la parte del controller, quindi funziona correttamente.
Come si può vedere, ho utilizzato la dichiarazione di array per la direttiva, quindi il servizio di dialogo $ è noto per Angular anche dopo il minification. Ma come faccio a farlo per il servizio $ scope sul controller?
questa è la soluzione fornita da me :) Sam = OP ;-) Tuttavia non sto esponendo il controller all'intera applicazione, solo all'intero modulo a cui appartiene la direttiva. Mi piace il tuo approccio, però, vado per quello. – Sam
In realtà esporlo a un modulo AngularJS significherebbe che il modulo _any_ AngularJS avrebbe accesso ad esso - questo è ciò che intendevo esponendolo all'intera applicazione. –
I moduli AngularJS hanno accesso al modulo person.controllers solo se dipendono da esso. Se non hanno quella dipendenza, non dovrebbero essere in grado di accedervi. Non è giusto? – Sam