AngularJs ui-router success transition get controller
AngularJs ui-router success transition get the controller
我已经创建了一个服务,可以运行 请求任何 http 请求。这个 运行s 在 ui-router onSuccess 挂钩中,看起来像这样:
$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);
}
我知道超时只有半秒,我可能会进一步减少它,但这似乎不对。
如果能直接从success hook中获取已经初始化好的controller就更好了
有办法吗?
我确实通过查看成功挂钩中的转换对象进行了尝试:
$transitions.onSuccess({}, function(transition) {
console.log(transition);
});
但是那里似乎没有控制器
您要查找的是 ui-router 状态的 'resolve' 选项。如果我正确理解您的描述,您正在尝试将数据(从您的 httpQueueService)异步加载到新状态的控制器。我建议你看看官方 ui-router 文档,尤其是教程。显然你可以跳过大部分,所以从第二个开始:https://ui-router.github.io/ng1/tutorial/hellosolarsystem 对你来说似乎可行。
基本上它处理您正在做的事情的异步性质 - 没有添加任何确切的 hard-coded 超时。
这是另一篇很棒的文章,我发现它在处理转换的异步查询时很有帮助:https://medium.com/opinionated-angularjs/advanced-routing-and-resolves-a2fcbf874a1c
希望这对您有所帮助,但是,如果您有任何更具体的问题,请告诉我们!
我已经创建了一个服务,可以运行 请求任何 http 请求。这个 运行s 在 ui-router onSuccess 挂钩中,看起来像这样:
$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);
}
我知道超时只有半秒,我可能会进一步减少它,但这似乎不对。 如果能直接从success hook中获取已经初始化好的controller就更好了
有办法吗?
我确实通过查看成功挂钩中的转换对象进行了尝试:
$transitions.onSuccess({}, function(transition) {
console.log(transition);
});
但是那里似乎没有控制器
您要查找的是 ui-router 状态的 'resolve' 选项。如果我正确理解您的描述,您正在尝试将数据(从您的 httpQueueService)异步加载到新状态的控制器。我建议你看看官方 ui-router 文档,尤其是教程。显然你可以跳过大部分,所以从第二个开始:https://ui-router.github.io/ng1/tutorial/hellosolarsystem 对你来说似乎可行。
基本上它处理您正在做的事情的异步性质 - 没有添加任何确切的 hard-coded 超时。
这是另一篇很棒的文章,我发现它在处理转换的异步查询时很有帮助:https://medium.com/opinionated-angularjs/advanced-routing-and-resolves-a2fcbf874a1c
希望这对您有所帮助,但是,如果您有任何更具体的问题,请告诉我们!