gpt4 book ai didi

javascript - AngularJs/.provider/如何获取rootScope进行广播?

转载 作者:行者123 更新时间:2023-12-03 13:26:29 24 4
gpt4 key购买 nike

现在我的任务是重写 $exceptionHandler 提供程序,以便它输出带有消息的模式对话框并停止默认事件。

我所做的:

在项目初始化中,我使用方法 .provider:

.provider('$exceptionHandler', function(){

//and here I would like to have rootScope to make event broadcast

})

标准注入(inject)方法不起作用。

更新 : 沙盒 - http://jsfiddle.net/STEVER/PYpdM/

最佳答案

您可以注入(inject)注入(inject)器并查找 $rootScope。

演示插件:http://plnkr.co/edit/0hpTkXx5WkvKN3Wn5EmY?p=preview

myApp.factory('$exceptionHandler',function($injector){
return function(exception, cause){
var rScope = $injector.get('$rootScope');
if(rScope){
rScope.$broadcast('exception',exception, cause);
}
};
})

更新:也添加 .provider 技术:
app.provider('$exceptionHandler', function() {
// In the provider function, you cannot inject any
// service or factory. This can only be done at the
// "$get" method.

this.$get = function($injector) {
return function(exception,cause){
var rScope = $injector.get('$rootScope');
rScope.$broadcast('exception',exception, cause);
}
};
});

关于javascript - AngularJs/.provider/如何获取rootScope进行广播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14954811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com