gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:16:30 25 4
gpt4 key购买 nike

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

我尝试在我的 ui-router 状态上使用 resolve。但它仅适用于 Controller ,不适用于 event

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

最佳答案

我决定尝试用 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 并且只运行一次该服务。

关于javascript - 在初始化路由之前发送 $http 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29083827/

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