Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

247
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda