1

我在AngularJs中管理事件時遇到了一些麻煩。 在我派遣與下面的代碼行事件服務:通過Angular接收事件

$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()函數調度方式FNH.ACTIV的事件E with $ rootScope。$ emit。 從ACTIVE狀態到COMPLETING狀態等工作流程正在進行。

在「S1」中,我收到好順序的事件READY,然後激活,然後完成...... 但是在我的指令中,我以其他順序接收它們:COMPLETED然後COMPLETING,然後ACTIVE,然後READY!

我該如何在我的「S1」服務和我的指令中同時接收事件?

非常感謝您的幫助

克萊門特

回答

0

奇怪,它的作品,如果我做了在S1每次調用flowNodeHelperService如下:

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