在初始化路由之前发送 $http 请求?

Send $http request before initialize routing?

我有一个 $rootScope.$on("$stateChangeStart") 事件改变了 titledescription.
而且我必须在 event.[=33= 中使用 $http 请求后创建的 $rootScope 对象 ] 问题是当 $stateChangeStart 事件 运行s 时,我的 object 是未定义的。

我曾尝试在 ui-router 状态下使用 resolve。但它仅适用于控制器,不适用于event

你能帮我想出一个解决方案,在路由开始之前 运行 我的服务(使用 $http 请求)(和 $stateChangeStart事件 运行s),并且在状态更改后它不会再次 运行 此服务。

我决定尝试用 promise:

来解决这个问题
$rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams){

    if ($rootScope.myObj) { // if my "object" was already created
        eventLogic();
    } else {
        getMyObj.init().then(function(res){ //call service that retuns a promise
            eventLogic();
        });
    }

    function eventLogic() {
        ...
    }
}

这个解决方案完全解决了我的问题。它等待创建 $rootScope.myObj 并且只运行该服务一次。