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:
public void Alert(string message)
{
RegisteredFunction.Invoke<object>("Alert", message);
}
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?
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:
@addTagHelper *, BlazorExtensions
<Router AppAssembly=typeof(Program).Assembly />
<BlazorExtensionScripts></BlazorExtensionScripts>