gpt4 book ai didi

javascript - 使用 Angular 按顺序接收事件

转载 作者:行者123 更新时间:2023-11-28 08:10:06 24 4
gpt4 key购买 nike

我在 AngularJs 中管理事件时遇到一些问题。在服务中,我使用以下代码行调度事件:

 $rootScope.$emit("FNH."+this.status, flowNodeHelper);

在服务“S1”中,我通过以下方式接收事件:

    $rootScope.$on('FNH.READY', function(event, flowNodeHelper) {
flowNodeHelperService.setActive(flowNodeHelper);
});
$rootScope.$on('FNH.ACTIVE', function(event, flowNodeHelper) {
flowNodeHelperService.setCompleting(flowNodeHelper);
});
$rootScope.$on('FNH.COMPLETING', function(event, flowNodeHelper) {
flowNodeHelperService.setCompleted(flowNodeHelper);
});
$rootScope.$on('FNH.COMPLETED', function(event, flowNodeHelper) {
flowNodeHelperService.setClose(flowNodeHelper);
});

在指令中,我以相同的方式接收事件:

     $rootScope.$on('FNH.READY', function(event, flowNodeHelper) {
console.log(flowNodeHelper + " status is ready");
});
$rootScope.$on('FNH.ACTIVE', function(event, flowNodeHelper) {
console.log(flowNodeHelper + " status is active");
});
$rootScope.$on('FNH.COMPLETING', function(event, flowNodeHelper) {
console.log(flowNodeHelper + " status is completing");
});
...

在我的服务“S1”中,当我收到事件“FNH.READY”时,我调用 flowNodeHelper.setCompleting() 函数,该函数使用 $rootScope 调度 FNH.ACTIVE 类型的事件.$发出。从“事件”状态变为“完成”状态等也是如此。工作流程正在进行中。

在“S1”中,我按照“就绪​​”、“事件”、“完成”的良好顺序接收事件,...但在我的指令中,我以其他顺序收到它们:完成,然后完成,然后事件,然后准备!!

如何才能在我的“S1”服务和指令中同时接收事件?

最佳答案

奇怪的是,如果我对 S1 中的 flowNodeHelperService 的每次调用执行以下操作,它就会起作用:

$timeout(function() {
flowNodeHelperService.setActive(flowNodeHelper);
}, 1);

关于javascript - 使用 Angular 按顺序接收事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24330423/

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