【发布时间】:2023-03-17 20:02:01
【问题描述】:
我尝试了几个小时,但完全没有运气。我有一个 angularjs 应用程序,只要页面未完全加载(渲染),我想向用户展示加载微调器。特别是在状态变化之间,因为点击已注册,但没有立即发生。因此,如果实际加载与否,用户不会得到任何反馈。当控制器被执行时,我的应用程序正在通过 ajax 请求一些数据。 我已经尝试过不同的解决方案:
使用
$stateChangeStart和$viewContentLoaded。如果第一次加载视图,这种方法确实可以正常工作,但是对于每个后续状态更改来说都过早触发。这与模板的缓存有关。每次触发 viewContentLoaded 时,都会缓存模板。使用带有
$timeout的指令。如果我将它附加到我的 html 文档的body,这在第一次加载时效果很好。但是由于我使用的是嵌套视图/控制器,因此当我在状态之间切换时不会再次调用该指令。当我将指令附加到ui-viewelement 时,它再次被提前触发。
还有其他选择吗?难道我做错了什么?甚至可能吗?
谢谢
【问题讨论】:
-
你能分享一下你的问题吗
-
你究竟在哪里加载数据?
-
我在控制器执行时加载数据。问题是加载是一个异步调用,一旦控制器完成执行,指令就会被调用,这并不意味着数据实际上已经存在。我将尝试让一个示例正常工作。
标签: javascript angularjs angular-ui-router