ui-路由器中的事件顺序

Order of events in ui-router

当我测试 ui-router 中的事件顺序时,我期望 $stateChangeSuccess 会在 $viewContentLoaded 之后,但事实并非如此,如下面的屏幕截图所示:

如果我通过 templateUrl 属性 远程加载视图,加载它可能需要一些时间(取决于网络连接)。我通过观看 stateChangeSuccess/Error 事件来显示我的加载指示器,我不希望加载指示器在视图尚未加载时过早停止。我想我会观看 $viewContentLoaded 事件,但我想与我的手表 (stateChangeStart/Success) 等保持一致。我想知道 stateChangeSuccess 是否真的等到视图内容加载之后?

它始终按该顺序加载。

我只是通过在 resolve 和 templateProvider 中延迟(延迟视图)来测试它,在这两种情况下事件的顺序都是相同的。

此外,当我在 templateProvider 中延迟视图加载时,$stateChangeSuccess 直到视图加载后才触发(resolves 中没有任何内容可以延迟它)。因此,$stateChangeSuccess 不会在加载视图之前触发。