Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

248
Views
Cómo invocar el archivo Js una vez que se cargan los datos en Blazor

Estoy llamando a api para cargar datos en la tarea asíncrona OnAfterRenderAsync(bool firstRender) Pero jscript se carga antes de que los usuarios se carguen en la interfaz de usuario

¿Cómo puedo llamar a js una vez que se cargan los datos en la lista de usuarios?

Código detrás

 protected override async Task OnAfterRenderAsync(bool firstRender) { List<User> users = await Getuser(Request); await jsRuntime.InvokeAsync<IJSObjectReference>("import", "/js/scripts/test.js"); }

interfaz de usuario

 <div class="user-list"> <ul> @foreach (var user in users) { <li> <h5 class="mb-25">@user.name</h5> </li> } </ul> <div>
about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

En el método OnAfterRenderAsync(), está cargando datos de usuario (desde la API) a la variable local. Su bucle foreach funciona en otra lista declarada en el componente.

Usar:

 users = await Getuser(Request);

en vez de:

 List<User> users = await Getuser(Request);
about 4 years ago · Santiago Trujillo Report

0

Use OnInitializedAsync para recuperar datos y OnAfterRenderAsync para interoperabilidad js.

En test.js, debe exportar la función que agrega los eventos de clic:

 export function addClickEvents() { // add your js code here if ($('.user-list').find('li').length) { $('.user-list').find('li').on('click', function (e) { $('.details').toggleClass('show'); }); } }

Luego, después de importar el módulo js, debe invocar esta función:

 private List<User> users; protected override async Task OnInitializedAsync() { users = await Getuser(Request); } protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { var module = await jsRuntime.InvokeAsync<IJSObjectReference>("import", "/js/scripts/test.js"); // invoke addClickEvents function await module.InvokeVoidAsync("addClickEvents"); } }

También en la interfaz de usuario debe verificar si la lista es nula.

 @if (users != null) { <div class="user-list"> <ul> @foreach (var user in users) { <li> <h5 class="mb-25">@user.name</h5> </li> } </ul> <div> } else { <p>Loading...</p> }

Ciclo de vida del componente Blazor

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!