Estou tentando configurar uma navegação onde os links sejam definidos por appsettings.json
valores. Talvez haja uma maneira muito melhor de fazer isso sem Javascript?
Este é o meu componente, chamadoNavigation.razor
@inject IConfiguration Configuration
@inject IJSRuntime JSRuntime
<a id="test-link">Test</a>
<script>
function SetNavlinks(url){
var a = document.getElementById('test-link')
a.setAttribute("href", url);
}
</script>
@code{
protected override async Task OnInitializedAsync()
{
await InitializeNavigation();
InvokeAsync(StateHasChanged);
}
Task InitializeNavigation(){
var testLinkURL = Configuration.GetValue<string>("ContentURLs:Values:TestLink");
JSRuntime.InvokeVoidAsync("SetNavlinks", testLinkURL);
return Task.CompletedTask;
}
}
O problema é que depois que a página carrega o DOM fica assim:
<a id="test-link">Test</a>
Mas se usar document.getElementById('test-link')
no console de desenvolvimento, mostra isto:
<a href="https://itworks.com" id="test-link">Test</a>
Você não deve precisar de nenhum JavaScript para fazer isso. Você pode definir o valor do URL na inicialização.