Auto-injection de javascript dans une application blazor

asp.net-core blazor c#

Question

Je développe une bibliothèque d'extension Blazor.

Une chose dans cette bibliothèque serait la réutilisation de la méthode javascript alert () . Je sais comment faire cela, cela implique de l'ajouter dans une page .cshtml:

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

et ceci dans mon code:

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

Je voudrais que la partie javascript soit automatiquement injectée dans le HTML si vous utilisez mon paquet (ou peut-être toujours). Pas sûr si c'est possible (encore)

Des idées à ce sujet?

Réponse acceptée

modifier

Depuis Blazor 0.2, il existe un moyen plus efficace de le faire. Regardez le modèle blazorlib pour un exemple:

dotnet new -i Microsoft.AspNetCore.Blazor.Templates

dotnet new blazorlib

0.1 réponse

J'ai fini par créer mon propre composant blazor contenant mon javascript, comme ceci:

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();
    }
}

Et l'ajouter à mon app.cshtml comme ceci:

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();
    }
}



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi