AngularJs ui路由器成功转换获取控制器
我创建了一个服务,用于运行已请求的任何http请求。这在ui router onSuccess钩子中运行,如下所示:AngularJs ui路由器成功转换获取控制器,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我创建了一个服务,用于运行已请求的任何http请求。这在ui router onSuccess钩子中运行,如下所示: $transitions.onSuccess({}, function() { document.body.scrollTop = document.documentElement.scrollTop = 0; console.log('%cwe have completed a transition', 'color: green;'); httpQue
$transitions.onSuccess({}, function() {
document.body.scrollTop = document.documentElement.scrollTop = 0;
console.log('%cwe have completed a transition', 'color: green;');
httpQueueService.process();
});
问题是控制器在这个钩子之后初始化,所以我不能在不添加超时的情况下捕获http请求:
function process() {
$timeout(() => {
let t = angular.copy(queue);
console.log('processing', t, t.length);
queue.forEach((task) => invoke(task));
}, 500);
}
我知道超时时间只有半秒,我可能会进一步减少,但这似乎不对。
如果我能直接从successhook获取已初始化的控制器,那就更好了
有没有办法做到这一点
我确实尝试过在成功挂钩中查看转换对象:
$transitions.onSuccess({}, function(transition) {
console.log(transition);
});
但是那里似乎没有控制器您要寻找的是ui路由器状态的“解析”选项。如果我正确理解了您的描述,您正在尝试将数据(从httpQueueService)异步加载到新状态的控制器。我建议您看看官方的ui路由器文档,尤其是教程。显然你可以跳过大部分,所以从第二个开始:对你来说似乎是可行的 基本上,它处理您正在做的事情的异步性质,而不添加任何精确的、硬编码的超时 下面是另一篇很棒的文章,我发现这篇文章在处理转换上的异步查询时很有帮助:
我希望这有帮助,但是,如果您有任何更具体的问题,请让我们知道 你能更好地解释哪个“这个钩子之后控制器被初始化”吗?不知道如何更好地解释它。我指的是成功过渡的州的控制者。