Javascript grunt uglify后的Angularjs喷油器错误

Javascript grunt uglify后的Angularjs喷油器错误,javascript,angularjs,gruntjs,grunt-contrib-uglify,Javascript,Angularjs,Gruntjs,Grunt Contrib Uglify,我正在努力丑化我的angularjs项目。 我在丑化过程后遇到了问题。以下函数不起作用 app.factory('Showmenusheet', function($rootScope){ return { //Custom pop up sheet for activities completed notification openNativePopup: function(imageUrl, title, para, buttonText, buttonLink){

我正在努力丑化我的angularjs项目。 我在丑化过程后遇到了问题。以下函数不起作用

app.factory('Showmenusheet', function($rootScope){
return {

    //Custom pop up sheet for activities completed notification
    openNativePopup: function(imageUrl, title, para, buttonText, buttonLink){   

        $('#popupTitle').html(title);
        $('#popupPara').html(para);
        $('#popupButton').html(buttonText);

        var imageElement = angular.element(document.querySelector('#popupImage'));
        var goToButton = angular.element(document.querySelector('#goToButton'));
        var closeButton = angular.element(document.querySelector('#closeButton'));

        goToButton.removeAttr("ng-show");
        closeButton.removeAttr("ng-show");  
        goToButton.removeAttr("go-click");      

        if(buttonLink == false) {
            goToButton.attr("ng-show", false);
            closeButton.attr("ng-show", true);
            $('#closeButton').html(buttonText);
        } else {
            goToButton.attr("ng-show", true);
            goToButton.attr("go-click", buttonLink);
            closeButton.attr("ng-show", false);
            $('#goToButton').html(buttonText);
        }


        imageElement.attr("src", 'assets/images/app_icons/'+imageUrl);
        compile(goToButton);
        compile(closeButton);
        compile(imageElement);

        setTimeout(function(){$('#nativePopup').addClass("showNativePopup");},350);
        setTimeout(function(){$('#deletemenu').addClass('delete-menu-active');},0);

    }
}
});
这是我在控制台中得到的错误。

因此,基本上,如果我不丑化代码,弹出功能工作得很好,没有任何问题,但丑化后,我在上面的屏幕截图中得到错误。 我在上述功能中是否有违反标准的错误

编辑 在添加了各种控制台日志测试之后,我发现该控件显示了compile函数的错误。我希望每次从AngularJS调用“openNativePopup”函数时,编译函数都会更新HTML。
可以使用什么替代方法来代替编译?

通常AngularJS错误上的缩小错误来自缺少依赖项注入使用的完整注释

这样想吧,假设我们有服务

angular
.module('MyModule', [])
.service('myService', function($rootScope) {
  $rootScope.title = 'my title'; 
});
Angular将$rootScope注入到函数中

每当这段代码经过缩小时,它就会变成

angular
.module('MyModule', [])
.service('myService', function(a) {
  a.title = 'my title';
});
这使得AngularJS依赖项注入机制抛出,因为并没有这样一个注册到AngularJS的依赖项

为了解决这一问题,有以下几点

因此,为了支持缩小,代码应该是这样的

angular
.module('MyModule', [])
.service('myService', ['$rootScope', function($rootScope) {
  $rootScope.title = 'my title';
}]);

有一种工具可以做到这一点

,但这不是问题所在。我使用的是ng annotate,项目运行良好。请阅读我的整个问题。编译定义在哪里?考虑到它只在缩小时发生,我会尝试添加分号;返回到上面代码段最后一行旁边的返回{…}的末尾。它会在起毛工具中发出警告。