Javascript grunt uglify后的Angularjs喷油器错误
我正在努力丑化我的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){
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,项目运行良好。请阅读我的整个问题。编译定义在哪里?考虑到它只在缩小时发生,我会尝试添加分号;返回到上面代码段最后一行旁边的返回{…}的末尾。它会在起毛工具中发出警告。