Auto inyectar javascript en la aplicación blazor

asp.net-core blazor c#

Pregunta

Estoy desarrollando una biblioteca de extensiones Blazor.

Una cosa en esta biblioteca sería la reutilización del método alert () de javascript. Sé cómo hacerlo, esto implica agregar esto en una página .cshtml:

<script>
  Blazor.registerFunction('Alert', (message) => {
      alert(message);
  });
</script>

y esto en mi codigo:

<script>
  Blazor.registerFunction('Alert', (message) => {
      alert(message);
  });
</script>

Me gustaría que la parte de javascript se autoinyectara de alguna manera en el html si usas mi paquete (o quizás siempre). No estoy seguro si esto es posible (todavía)

¿Alguna idea sobre esto?

Respuesta aceptada

Editar

Desde blazor 0.2 hay una forma más compatible de hacer esto. Mira la plantilla de blazorlib para ver un ejemplo:

dotnet new -i Microsoft.AspNetCore.Blazor.Templates

dotnet new blazorlib

0.1 respuesta

Terminé creando mi propio componente blazor que contenía mi javascript, como este:

public class BlazorExtensionScripts : Microsoft.AspNetCore.Blazor.Components.BlazorComponent
{

    protected override void BuildRenderTree(Microsoft.AspNetCore.Blazor.RenderTree.RenderTreeBuilder builder)
    {
        builder.OpenElement(0, "script");
        builder.AddContent(1, "Blazor.registerFunction('Alert', (message) => { alert(message); });");
        builder.CloseElement();
    }
}

Y añadiéndolo a mi app.cshtml como este:

public class BlazorExtensionScripts : Microsoft.AspNetCore.Blazor.Components.BlazorComponent
{

    protected override void BuildRenderTree(Microsoft.AspNetCore.Blazor.RenderTree.RenderTreeBuilder builder)
    {
        builder.OpenElement(0, "script");
        builder.AddContent(1, "Blazor.registerFunction('Alert', (message) => { alert(message); });");
        builder.CloseElement();
    }
}



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué