gpt4 book ai didi

angularjs - 如何从 http 拦截器进行广播?

转载 作者:行者123 更新时间:2023-12-04 04:44:01 24 4
gpt4 key购买 nike

使用 AngularJS 1.2

我的拦截器如下所示:

        $httpProvider.interceptors.push(['$q', '$log', '$rootScope', function ($q, $log, $rootScope) {
return {
'request': function(config) {
$rootScope.$broadcast('spin');
console.info('request!');
return config || $q.when(config);
},
...

在我的导航 Controller (它处理加载器/微调器并将其绑定(bind)到 View ):
$rootScope.$watch('spin', function(event) {
console.info('spin');
$scope.spinner++;
});

广播似乎只在收到的所有响应结束时发生一次,即使我可以看到很多请求!在控制台日志中。

我必须如何管理我的全局微调器/加载器?

编辑
每当加载数据时,我希望在我的导航栏中显示一个加载器/微调器。

最佳答案

$watch函数不监听广播消息。它监视范围的变化。在这种情况下,只要 $rootScope.spin 调用函数更改,它会立即被调用(默认情况下),这就是你被调用一次的原因。
$on函数是你想要的,因为它会监听广播事件。

$rootScope.$on('spin', function(msg, data) {
console.info('spin');
$scope.spinner++;
});

如果您好奇,我已经整理了一个完整的工作示例:

http://codepen.io/BrianGenisio/pen/wIBHz

关于angularjs - 如何从 http 拦截器进行广播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18483722/

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