我在asp.net mvc项目中有一个Durandal应用程序。这一切都很好,但有些人提到导航没有用。然后我注意到他们在应用程序准备就绪之前点击链接并且路由器准备好了。
在应用准备好之前,有没有人有任何关于如何阻止导航可用的建议?
答案 0 :(得分:0)
你可以抛出一个全屏稀松布(或者一些人称之为阻止用户界面),它位于一个非常高的z-index上,覆盖所有内容。你甚至可以在这个稀松布上把一个微调器放在同一个z-index上。
在shell的viewModel的compositionComplete
处理程序中,您可以隐藏该平纹棉布。这是基于路由和组合的完成应该表明您的应用程序可用性的假设。但请记住,如果您有可能占用应用程序的AJAX调用(以获取数据等形式),则可能需要将稀松布的隐藏与这些调用的完成相对应。这应该不早于compositionComplete
。
最后一句话有点棘手。大多数情况下,您在activate
处理程序中获取数据,该处理程序早于compositionComplete
处理。没有办法知道AJAX提取是否会在'compositionComplete'之前或之后完成。在这些情况下,将AJAX提取移动到compositionComplete
处理程序可能更有意义,这样您就可以更好地协调和计算浏览器的隐藏,以完成路由,组合,和取材。