Как отменить регистрацию $ rootScope. $ On в app.run - PullRequest
0 голосов
/ 05 июня 2018

Я передаю событие в моем контроллере приложения:

var locationSrt = location.toString();
if(locationSrt.indexOf("?RecoverPassword") !== -1) {
    $rootScope.$broadcast('recover-password');
}

Затем в моем app.js в app.run у меня есть $rootScope.$on (из того, что я прочитал app.run не поддерживает $scope)

app.run(function ($rootScope, $location) {
    $rootScope.$on('recover-password', function () {
        $location.path("/recover-password");
    });
});

Проблема заключается в том, что $rootScope.$on вызывается каждый раз в контроллере входа в систему, даже если условие locationSrt.indexOf("?RecoverPassword") !== -1 больше не выполняется, поскольку location.search установлено на $window.location.search = '';

Как я могу предотвратить повторный вызов $rootScope.$on?

...