在 Blazor 中使用常规的单页 Razor 组件,可以在页面顶部像这样注入 IJSRuntime
:
@inject IJSRuntime JSRuntime
如果我为组件创建了一个 .razor.cs 文件作为代码后端,我该如何在其中注入 IJSRuntime
之类的内容?
在 Blazor 中使用常规的单页 Razor 组件,可以在页面顶部像这样注入 IJSRuntime
:
@inject IJSRuntime JSRuntime
如果我为组件创建了一个 .razor.cs 文件作为代码后端,我该如何在其中注入 IJSRuntime
之类的内容?
在razor.cs文件的代码后台中,可以使用[Inject]
属性注入IJSRunTime
或其他内容。
public partial class BillingDashboard
{
[Inject]
IJSRuntime JSRuntime { get; set; }
protected override async Task MyFunction()
{
await JSRuntime.InvokeVoidAsync("console.log('test')");
}
}
OnInitializedAsync
中调用JavaScript有其合理的使用情况,比如如果你只希望JS在第一次运行而不是在每次重渲染时运行,并且没有访问组件中的DOM元素,那么这种情况也与如何在razor组件代码后台文件中注入内容的问题不是特别相关。 - KyleMicrosoft.AspNetCore.Components;
! - Joshua Schlichting