Joh*_*Lee 4 document-ready blazor blazor-server-side
我有一个 Blazor 服务器应用程序,我需要在加载文档时运行一个 js 函数——当我使用“静态”模式时,jQuery$(document).ready()工作正常,但我需要使用“ServerPrerendered”模式——当用户点击导航栏上的不同链接时, $(document).ready() 永远不会触发,因为 Blazor 使用 SingalR 来更新内容。建议的方法是使用JSRuntime.InvokeVoidAsync("jsfunctiont")inside
OnAfterRenderAsync,defaultLayout.razor但问题是此事件发生在所有子组件完全呈现之前,因此我的 js 函数将失败。我的问题是在所有子组件完全渲染后调用js函数的方式是什么?这相当于$(document).ready()在 Blazor 服务器应用程序中使用“ServerPreRendered”模式?
太感谢了!
OnAfterRender(使用 firstRender == true)正是您所需要的。直到整个内容在浏览器中呈现后才会触发。
但是,在您的页面创建后,内容将发生变化,因此将创建新组件并销毁现有组件。如果您jsfunction需要挂钩页面上的每个组件,而不管它是何时创建的,那么您的方法将不起作用。您还需要各个组件来覆盖OnAfterRenderAsync并调用jsfunction将引用传递给它们自己。
| 归档时间: |
|
| 查看次数: |
1151 次 |
| 最近记录: |